Bytecode là gì?
0
1
trungkfc02 • 570
đã đăng:
Bytecode (còn gọi là portable code hay intermediate code), nó là kết quả của mã nguồn sau khi được biên dịch bởi Compiler.
Ví dụ:
Ta có file mã nguồn hello.cpp:
#include <iostream>
using namespace std;
int main() {
cout << "Hello World" << endl;
}
Sau khi biên dịch, ta sẽ có file bytecode hello.obj, mở bằng Visual Studio, nó sẽ giống như thế này:
0000000 4C 01 72 01 FC 72 BF 5B 57 71 00 00 93 04 00 00
0000010 00 00 00 00 2E 64 72 65 63 74 76 65 00 00 00 00
0000020 00 00 00 00 B1 01 00 00 E4 39 00 00 00 00 00 00
............ .................................... ...................................
Mục đích của bytecode là gì?
Không giống như mã nguồn là thứ mà chúng ta có thể đọc dễ dàng, bytecode được tạo ra bởi Compiler với mục đích:
- Dễ dàng đọc và được thực thi hiệu quả bởi các chương trình phần mềm thực thi.
- Bytecode ở vị trí trung gian giữa mã nguồn (code) và mã máy (machine code), cho nên nó giảm thiểu khả năng phụ thuộc phần cứng và hệ điều hành, tức là cùng một mã bytecode có thể thực thi được trên nhiều hệ điều hành khác nhau.
- Bytecode còn được dùng để thực thi trực tiếp trên các máy ảo như JVM (Java - Java Virtual Machine), CLR (C# - Common Language Runtime) hay PVM (Python - Python Virtual Machine).
Đuôi mở rộng của file bytecode trong các ngôn ngữ lập trình phổ biến?
- Python: hello.py $\rightarrow$ hello.pyc
- C++: hello.cpp $\rightarrow$ hello.obj
- Java: hello.java $\rightarrow$ hello.class
Ví dụ quá trình chuyển từ mã nguồn (code) $\rightarrow$ bytecode $\rightarrow$ được thực thi bởi JVM $\rightarrow$ mã máy (machine code) trong Java:
thêm bình luận...
Bạn chưa đăng nhập, vui lòng đăng nhập để thêm câu trả lời.
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)