Thông Dịch Và Biên Dịch Trong Java - Programming - Dạy Nhau Học Trang chủ » Trình Biên Dịch Là Gì Java » Thông Dịch Và Biên Dịch Trong Java - Programming - Dạy Nhau Học Có thể bạn quan tâm Trình Biên Dịch Là Gì Ví Dụ Trình Biên Dịch Nghĩa Là Gì Trình Biên Dịch Pascal Trình Biên Dịch Pascal Online Trình Biên Dịch Python Thông dịch và biên dịch trong Java programming java Ngoc_An_Nguyen (Ngọc An Nguyễn) February 9, 2017, 8:24am #1 Xin chào mọi người, Mình mới tìm hiểu về Java nên mình có một thắc mắc về vấn đề thông dịch và biên dịch trong Java. Theo như mình được học thì: Mã nguồn được Javac BIÊN DỊCH thành dạng bytecode. sau đó được chạy trên từng hệ điều hành cụ thể nhờ trình THÔNG DỊCH java. Thế tại sao không phải là: Mã nguồn được Javac BIÊN DỊCH thành dạng bytecode. sau đó được chạy trên từng hệ điều hành cụ thể nhờ trình BIÊN DỊCH java. ? hoặc: Mã nguồn được Javac THÔNG DỊCH thành dạng bytecode. sau đó được chạy trên từng hệ điều hành cụ thể nhờ trình THÔNG DỊCH java. ? mọi người giải đáp giúp mình với, mình cám ơn ! anon52681320 (anon52681320) February 9, 2017, 9:30am #2 Do dịch sang tiếng Việt nó vậy thôi, và người đọc không hiểu được từ THÔNG và từ BIÊN thôi(hoặc cố tình tự vẽ vời thêm để làm rối bản thân). Thực chất trình BIÊN DỊCH của Java được gọi là Java compiler, nó sẽ chuyển đổi các file code thành java byte-code. Để làm gì ? Để trình THÔNG DỊCH, được gọi là Java Virtual Machine (JVM) thông dịch (chạy) byte-code này thành ngôn ngữ máy (machine-code) để chạy. Tại sao ? Vì có nhiều Os khác nhau về nền tảng bên dưới, nên JVM sẽ viết riêng cho những OS đó (Windows, Linux và MAC). Và JVM riêng cho từng OS này sẽ biên dịch cùng java byte-code thành machine code riêng của OS đó để thực thi đoạn lệnh. Bởi vậy, mới có định nghĩa Write Once, Run Everywhere (In theory) của Java. Got it ? 6 Likes drgnz (Drgnz) February 9, 2017, 10:03am #3 Bây giờ mình có 1 tài liệu tiếng Anh, mình đưa một người dịch giùm mình rồi hôm sau đưa cho mình thì người đó gọi là Biên dịch viên. Cuốn sách sau khi dịch là sản phẩm của Biên dịch. Nhưng giả sử bây giờ mình đi gặp mấy người nước ngoài để nc mà không biết tiếng Anh. Thì lúc này mình sẽ thuê một người thể dịch song song và liên tục cho mình với người nước ngoài kia. Thì người này được gọi là Thông dịch viên. Vậy Biên dịch là khi bạn chuyển từ ngôn ngữ này sang ngôn ngữ khác một cách không song song. Còn thông dịch thì nó xảy ra song song; tức bạn nói “xin chào”, thì bên kia sẽ nhận được ngay là “hello”. Tương tự như vậy cho Java. Từ file .java ta nhờ java compiler biên dịch ra file .class chứa bytecode. Java compiler ở đây giống như anh Biên dịch viên dịch cuốn sách từ ngôn ngữ Java sang Bytecode. Sau đó mỗi lần chạy chương trình, Java Virtual Machine mới thông dịch cho máy hiểu để có thể chạy chương trình. Thằng JVM bây giờ như anh Thông dịch viên, thông dịch cuốn sách ngôn ngữ Bytecode sang mã máy. Tại sao lại viết ra cuốn sách Bytecode chi cho mệt vậy? Đơn giản là khi viết ra cuốn sách Bytecode rồi, thì sau đó ta đem đi đâu mà có thằng JVM nhờ nó vừa đọc vừa dịch cho thằng mã máy nào cũng được. Đỡ phải viết tùm lum cuốn sách cho từng thằng mã máy khác nhau. 16 Likes snoobvn (cdxf) February 9, 2017, 10:23am #4 Đặc điểm nhận dạng: Biên dịch: chỉ cần dịch 1 lần (java code sang bytecode, sau khi dịch xong thì có thể vứt mịa cái source đi). Thông dịch: cần dịch nhiều lần (mỗi lần muốn chạy class file là phải gõ lệnh java helloworld.class chẳng hạn) 1 Like yuh (Huy) February 9, 2017, 11:23am #5 Một topic khá thú vị có liên quan: Java - Biên dịch -Thông dịch programming Vừa rồi có đi phỏng vấn, một bác chắc làm cũng được 10 năm, hỏi Java là thông dịch hay biên dịch. Mình trả lời là biên dịch, bác ấy trơn mắt nhìn mình hỏi lại lần nữa. Vẫn trả lời là biện dịch vì tin rằng mình trả lời đúng. Mặc dù biết khi chuyển sang bytecode JVM sẽ thông dịch từng dòng. anh em nào trên này biết câu trả lời chính xác không. - Java là ngôn ngữ biên dịch - Java vừa biện dịch vừa thông dịch Câu trả lời nào chính xác. 2 Likes reoteu_ray (Reoteu Ray) February 9, 2017, 12:54pm #6 java là ngôn ngữ vừa thông dich vừa biên dịch , ide đóng vai trò biên dịch còn jvm là trình thông dịch , vì vậy java chạy được trên mọi nền tảng mà có jvm … 1 Like pvphuc48 (Phan Văn Phúc) April 1, 2019, 2:54pm #7 Rất dễ hiểu. Cám ơn bạn Youri_Hoang_Dat (Youri Hoàng Đạt) April 25, 2019, 3:55pm #8 Vậy thì tại sao từ source code java jvm ko đem đi thông dịch cho từng máy, mà phải qua thêm công đoạn là biên dịch ra byte code ? drgnz (Drgnz) April 28, 2019, 10:12am #9 Vì jvm nó dốt lắm. jvm ngày xưa học văn kém nên không hiểu nổi những dòng code java văn vẻ được, mà nó chỉ hiểu được những bytecode đơn giản thôi. Chưa kể, Java có cho hệ thống nhúng, tức cái thằng jvm trong hệ thống đó còn dốt ác nữa Nên thôi bytecode cho lành nha. Chưa hết, compile ra bytecode còn giúp một việc nữa là giảm tải lượng công việc cho thằng jvm nữa cơ. Goi là optimize đó. Như có cac dev hay làm như sau int a = 10; a += 20; int c = 30; a += c; Có thể làm nhwu trên, giúp hiểu rõ từng bước tính toán của a, giúp người khác đọc code sảng khoái hơn. Nhưng jvm đã dốt rồi còn bắt nó làm nhiều việc chi vậy Thôi bh tui compile ra thành int a = 60; xong. Khỏe re cho jvm; Và cái hay nữa là, khi dịch về bytecode, giả dụ Java có những syntax mới, thì javac có thể biên dịch về những lệnh bytecode của hệ thống cũ. (cross-compiling) Từ đó giúp những hệ thống cũ có thể hiểu được phần mềm mặc dù được viết bằng syntax mới không phải update hệ thống theo syntax kia. Quá xá tiện :3 8 Likes Youri_Hoang_Dat (Youri Hoàng Đạt) April 28, 2019, 10:03am #10 Tuyệt vời…cho minh xin skype bạn đi…còn nhiều thứ minh muốn tìm tòi lắm…tks bạn DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Trình Biên Dịch Là Gì Java Trình Biên Dịch Java Hoạt động Thế Nào? - NIIT - ICT Hà Nội Biên Dịch Trong Chương Trình Java Trình Biên Dịch Ngược Trong Java Mà Mọi LTV đều Nằm Lòng Sự Khác Nhau Giữa Trình Biên Dịch Và Trình Thông Dịch - Viblo Classpath Và Biên Dịch Java Từ Command Line - Viblo Viết Và Biên Dịch Chương Trình Java Helloworld Không Dùng IDE Tổng Quan Về Ngôn Ngữ Lập Trình Java - GP Coder Phân Biệt Trình Biên Dịch - Thông Dịch Hướng Dẫn Thiết Kế Trình Biên Dịch Là Gì ? Trình Biên Dịch Java ... Trình Biên Dịch – Wikipedia Tiếng Việt Java (ngôn Ngữ Lập Trình) – Wikipedia Tiếng Việt Kiến Thức IT - So Sánh Trình Biên Dịch Của Java Vs C++ ... - Facebook Java Là Gì? Tổng Quan Về Ngôn Ngữ Lập Trình Java | TopDev Tại Sao Java Là Một Ngôn Ngữ được Biên Dịch Và Thông Dịch?