Bytecode

Bytecode, còn được gọi là portable code hoặc p-code, là cách thức lưu trữ dạng mã các chỉ thị trong lập trình máy tính, được thiết kế để phần mềm thông dịch thực hiện hiệu quả trên nền tảng máy ảo.

Không giống như các mã nguồn dạng văn bản hiện ra mà người có thể đọc được, bytecode lưu ở dạng mã nhị phân các lệnh, số, hằng, và tham chiếu (thường là địa chỉ bằng số), là mã hoá kết quả của phân tích và dịch những thứ như kiểu, phạm vi và cấp độ lồng (nesting depth) của các đối tượng chương trình. Do đó, nó cho phép thực thi với hiệu năng tốt hơn nhiều so với việc thông dịch trực tiếp mã nguồn văn bản [1].

Tên gọi bytecode bắt nguồn từ tập chỉ lệnh có opcode dài một byte và theo sau là các tham số tùy chọn. Bytecode là dạng trung gian giữa trình mã máy đã biên dịch và văn bản (text). Nó được tạo ra nhờ ngôn ngữ lập trình khi lưu lại, và phục vụ cho thông dịch dễ dàng, hoặc để làm giảm sự phụ thuộc vào phần cứng và hệ điều hành, bằng cách cho phép cùng loại mã có thể chạy trên các nền tảng khác nhau. Bytecode thường có thể được thực thi trực tiếp hoặc trên một máy ảo (một "máy tính p-code" tức trình thông dịch), hoặc nó có thể được tiếp tục biên dịch thành mã máy để cho hiệu năng chạy tốt hơn.

Do các lệnh bytecode được xử lý bởi phần mềm nên chúng có thể phức tạp một cách tùy tiện, tuy nhiên chúng thường giống với các hướng dẫn phần cứng truyền thống: các cơ chế stack ảo (tạm dịch: virtual stack machines) là loại phổ biến nhất, nhưng các cơ chế thanh ghi ảo (tạm dịch: virtual register machines) cũng được xây dựng. Các phần khác nhau của một chương trình thường có thể được lưu trữ trong các tệp riêng biệt, tương tự như các modul mã object (tập tin object), nhưng được nạp linh động trong quá trình thực hiện [2][3].

Thực thi

[sửa | sửa mã nguồn]

Tham khảo

[sửa | sửa mã nguồn]
  1. ^ Bill Venners. Bytecode basics. A first look at the bytecodes of the Java virtual machine Lưu trữ 2015-05-19 tại Wayback Machine. JavaWorld, 01/09/1996. Truy cập 01/04/2017.
  2. ^ Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes. The Implementation of Lua 5.0 Journal of Universal Computer Science, Volume 11, Issue 7. Truy cập 01/04/2017. This involves a register-based virtual machine.
  3. ^ Dalvik V. M. Dalvik bytecode. android.com, 27/03/2017. Truy cập 01/04/2017. This is register based.


Liên kết ngoài

[sửa | sửa mã nguồn]
Chúng tôi bán
Bài viết liên quan
Tóm tắt chương 227: Jujutsu Kaisen
Tóm tắt chương 227: Jujutsu Kaisen
Đầu chương, Kusakabe không hiểu cơ chế đằng sau việc hồi phục thuật thức bằng Phản chuyển thuật thức
Marley and Me - Life and love with the world's worst dog
Marley and Me - Life and love with the world's worst dog
Một cuốn sách rất đáng đọc, chỉ xoay quanh những câu chuyện đời thường nhưng vô cùng giản dị. Chú chó lớn lên cùng với sự trưởng thành của cặp vợ chồng, của gia đình nhỏ đấy
Sung Il-Hwan: Thợ Săn Hạng S Huyền Thoại và Hành Trình Bảo Vệ Gia Đình
Sung Il-Hwan: Thợ Săn Hạng S Huyền Thoại và Hành Trình Bảo Vệ Gia Đình
Sung Il-Hwan (성일환) là một Thợ săn hạng S người Hàn Quốc và là cha của Jinwoo và Jinah
Hẹn hò qua dating app - làm gì sau buổi first date
Hẹn hò qua dating app - làm gì sau buổi first date
Việc chúng ta cần làm ngay lập tức sau first date chính là xem xét lại phản ứng, tâm lý của đối phương để từ đó có sự chuẩn bị phù hợp, hoặc là từ bỏ