Triển khai Java thường sử dụng quy trình biên dịch hai bước. Mã nguồn Java được biên dịch xuống bytecode bởi trình biên dịch Java. Bytecode được thực thi bởi một máy ảo Java (JVM). Các JVM hiện đại sử dụng kỹ thuật gọi là Just-in-Time (JIT) compilation để biên dịch bytecode thành các chỉ lệnh gốc được hiểu bởi CPU phần cứng khi đang chạy.
Một số triển khai của JVM có thể chọn để giải thích bytecode thay vì JIT biên dịch nó thành mã máy và chạy trực tiếp. Trong khi điều này vẫn được coi là một "thông dịch viên", nó hoàn toàn khác với các thông dịch viên đọc và thực thi mã nguồn cấp cao (tức là trong trường hợp này, mã nguồn Java không được giải thích trực tiếp, bytecode, đầu ra của trình biên dịch Java,.)
Về mặt kỹ thuật, có thể biên dịch Java xuống mã gốc trước và chạy kết quả nhị phân. Cũng có thể diễn giải mã Java trực tiếp.
Để tóm tắt, tùy thuộc vào môi trường thực thi, bytecode có thể là:
- biên soạn trước thời hạn và thực hiện như mã gốc (tương tự như hầu hết các trình biên dịch C++)
- biên soạn just-in-time và thực hiện
- giải thích
- trực tiếp thực hiện bởi một bộ xử lý được hỗ trợ (bytecode là tập hướng dẫn bản địa của một số CPU)
Nguồn
2009-08-25 04:41:14
C++ có thể được diễn giải. Có một vài thông dịch viên C ngoài kia. –