Theo xu hướng, chúng ta viết một chương trình máy tính sử dụng ngôn ngữ lập trình cấp cao. Dòng lệnh của ngôn ngữ lập trình cấp cao có thể hiểu được bởi con người. Đó gọi là mã nguồn (source code).
Tuy nhiên, một máy tính không hiểu ngôn ngữ lập trình cấp cao. Nó chỉ hiểu chương trình được viết bằng giá trị nhị phân (binary) 0 hoặc 1, hay còn gọn là mã máy (machine code).
Để chuyển mã nguồn sang mã máy, chúng ta sử dụng một trình biên dịch hoặc trình diễn dịch
Cả trình biên dịch và trình diễn dịch sẽ chuyển một chương trình từ ngôn ngữ cấp cao sang ngôn ngữ máy để máy tính thực thi được. Tuy nhiên, có những khác biệt giữa một trình biên dịch và trình diễn dịch trong cách thức hoạt động.
Trình biên dịch (Compiler) | Trình diễn dịch (Interpreter) |
Quét toàn bộ chương trình và dịch tất cả sang mã máy | Dịch từng câu lệnh tại một thời điểm |
Mất nhiều thời gian để phân tích mã nguồn. Thời gian thực thi nhanh hơn trình diễn dịch | Mất ít thời gian để phân tích mã nguồn. Thời gian thực thi chậm hơn trình biên dịch |
Tạo ra object code dùng cho việc liên kết do đó tốn bộ nhớ | Object code không được tạo ra, do đó tiết kiệm bộ nhớ |
C/C++, Java | JavaScript, Python, Ruby |