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 .
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 .
Thực thi
👁️
0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**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
**Java** (phiên âm Tiếng Việt: "_Gia-va_") là một ngôn ngữ lập trình hướng đối tượng, dựa trên lớp được thiết kế để có càng ít phụ thuộc thực thi càng tốt. Nó là ngôn ngữ
Đây là danh sách các ngôn ngữ lập trình đáng chú ý, được nhóm theo loại. Vì không có sơ đồ phân loại bao quát cho các ngôn ngữ lập trình, nên trong nhiều trường
**Ngôn ngữ trung gian chung **hoặc **Ngôn ngữ trung gian dùng chung** (**Common Intermediate Language - CLI**), là ngôn ngữ lập trình có thể đọc được của con người ở mức thấp nhất được xác
**Ngôn ngữ biên dịch** (tiếng Anh: _compiled language_) là ngôn ngữ lập trình có triển khai thường là trình biên dịch (bộ dịch tạo ra mã máy từ mã nguồn), chứ không phải trình thông
Trong lập trình máy tính, một **triển khai của ngôn ngữ lập trình** là một hệ thống để thực thi chương trình máy tính. Có hai cách tiếp cận chung để triển khai một ngôn
phải|nhỏ|402x402px|[[Mã nguồn của một chương trình máy tính đơn giản được viết bằng ngôn ngữ lập trình C. Khi được biên dịch và chạy, nó sẽ cho kết quả "Hello, world!".]] **Ngôn ngữ lập trình**
phải|Biểu đồ hoạt động của một trình biên dịch lý tưởng. **Trình biên dịch** () hay **phần mềm biên dịch** là một chương trình máy tính làm công việc dịch một chuỗi các câu lệnh
nhỏ|Cbmain Trong khoa học máy tính, một **ngôn ngữ lập trình bậc cao** (tiếng Anh: _high-level programming language_) là một ngôn ngữ lập trình có sự trừu tượng hóa mạnh mẽ khỏi các chi tiết
**Lập trình máy tính** hay **lập chương trình máy tính,** thường gọi tắt là **lập trình** (, hay _programming_), là việc lập ra chương trình làm việc cho máy có bộ xử lý, nói riêng
Trong công nghệ điện toán, **đa nền tảng** (tiếng Anh: **cross-platform** hay **multi-platform**) là một thuật ngữ chỉ các phần mềm máy tính hay các phương thức điện toán và các khái niệm
**WebKit** là một engine trình duyệt nguồn mở cung cấp các thành phần cần thiết để xây dựng một trình duyệt web. WebKit được Apple Inc. chính thức nhận từ thư viện phần mềm KHTML
nhỏ|Một applet Java được tạo ra như một tài liệu trình diễn bổ sung cho một ấn phẩm khoa học nhỏ|Một Java applet sử dụng tăng tốc phần cứng 3D để trực quan hóa các
Một **tập lệnh**, hoặc **kiến trúc tập lệnh** (tiếng Anh: instruction set architecture, viết tắt _ISA_), là một phần của kiến trúc máy tính liên quan đến lập trình, bao gồm các bản địa các
**Pascal** là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh và thủ tục, được Niklaus Wirth phát triển vào năm 1970. Pascal là ngôn ngữ lập trình đặc biệt thích hợp
Trong khoa học máy tính, **reflection** (có thể dịch là "phản tỉnh", "tự xét mình") là việc tiến trình có khả năng xem xét, nội quan, và sửa đổi kết cấu cùng với hành trạng
**Jakarta Server Pages** (**JSP**; trước đây là **JavaServer Pages**) là một bộ công nghệ giúp các nhà phát triển phần mềm tạo ra các trang web động dựa trên HTML, XML, SOAP hay các loại
nhỏ|Mô hình ngôn ngữ máy được lập nên bởi nhà toán học, nhà thủy văn và lập trình viên Vladimir Mikhailovich Kazakov, nhân viên Máy tính của Viện Energosetproekt năm 1962-1972. **Ngôn ngữ máy** (còn
**OCaml** là dòng ngôn ngữ lập trình phổ dụng trong ngôn ngữ **Caml** (một dạng của ngôn ngữ lập trình ML), bắt đầu được Viện Nghiên cứu Khoa học Máy tính Quốc gia ở Pháp
Đây là danh sách **Phần mềm mã nguồn mở**: là phần mềm máy tính được cấp phép giấy phép mã nguồn mở. Bài viết này không có tham vọng liệt kê tất cả những phần
Trong các lĩnh vực an ninh máy tính và lập trình, một **lỗi tràn bộ nhớ đệm** hay gọi tắt là **lỗi tràn bộ đệm** (tiếng Anh: _buffer overflow_) là một lỗi lập trình có
**Groovy** là một ngôn ngữ lập trình hướng đối tượng trên nền Java. Nó là một ngôn ngữ lập trình động với các tính năng tương tự như Python, Ruby, Perl, và Smalltalk. Hơn nữa,
**Android** là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng.
Dưới đây là danh sách các lệnh trong tập lệnh của bytecode ngôn ngữ trung gian dùng chung. * _Các lệnh cơ sở_ tạo thành một tập lệnh Turing-hoàn-chỉnh. * _Các lệnh mô hình đối
**Object Pascal** chỉ đến một nhánh của phát sinh hướng đối tượng của Pascal, được biết đến chủ yếu với vai trò ngôn ngữ lập trình chính của Delphi. ## Lịch sử ban đầu tại
**Diem** (trước đây là **Libra**, cũng gọi **GlobalCoin** hay **Facebook Coin**) là một loại tiền mã hóa sử dụng blockchain tư hữu (permissioned blockchain) được phát triển bởi Facebook. Tin tức về Libra lần đầu
Trong lập trình máy tính, **mô thức async/await** là một tính năng cú pháp của nhiều ngôn ngữ lập trình, cho phép cấu trúc nên hàm 'bất đồng bộ, non-blocking' theo lối y hệt ở
**Chrome V8**, hay đơn giản là **V8**, là một JavaScript engine mã nguồn mở phát triển bởi The Chromium Project cho trình duyệt web Google Chrome và Chromium. Người sáng lập dự án là Lars
**Kotlin** là một ngôn ngữ lập trình kiểu tĩnh chạy trên máy ảo Java (JVM) và có thể được biên dịch sang mã nguồn Java hay sử dụng cơ sở hạ tầng trình biên dịch
**Mã byte Java** (tiếng Anh: **Java bytecode**), là tập lệnh của máy ảo Java (JVM). ## Liên quan đến Java Một lập trình viên Java hoàn toàn không cần phải biết hoặc hiểu mã byte
Một **tập tin lưu trữ**, còn gọi là **tệp lưu trữ** hay **file lưu trữ** (tiếng Anh: _archive file_) là một tập tin bao gồm một hoặc nhiều tập tin máy tính cùng với siêu
**BCPL** ("**Basic Combined Programming Language**", hay "**Ngôn ngữ lập trình kết hợp cơ bản**") là một ngôn ngữ lập trình máy tính thủ tục, mệnh lệnh, và cấu trúc. Ban đầu được định dùng để
Trong lập trình máy tính, đặc biệt là khi sử dụng mô phạm lập trình mệnh lệnh, **assertion** (có thể dịch là **xác quyết**) là một vị ngữ (tức hàm có giá trị Boolean lên
Trong khoa học máy tính, **ngôn ngữ máy tính** là hệ thống giao tiếp với máy tính. Các ngôn ngữ như vậy được sử dụng để tạo **mã máy tính** hoặc **mã** **chương trình**, tập