Interpreter và Compiler là gì?

Interpreter và Compiler là gì?
Interpreter và Compiler được biết đến là hai chương trình trung gian, hỗ trợ hữu ích trong quá trình làm việc giữa các nhà lập trình với máy tính.

Interpreter là gì?

Interpreter là trình thông dịch, đảm nhận trọng trách chuyển đổi các ngôn ngữ bậc cao sang ngôn ngữ máy, giúp máy tính nhanh chóng hiểu và thực thi các yêu cầu của nhà lập trình.

Source Code trước khi được chuyển đổi sang mã máy, chúng sẽ được Interpreter chuyển sang dạng Intermediate Code.

Với mỗi đoạn code sẽ được thông dịch và thực thi theo một cách riêng dựa trên trình tự nhất định.

Trong quá trình thông dịch, nếu bất kỳ đoạn code nào xuất hiện lỗi, bạn sẽ ngay lập tức nhận được thông báo và toàn bộ quy trình sẽ ngừng lại mà không cần phải thực hiện tiếp với những đoạn code kế tiếp.

Ưu điểm của Interpreter

  • Hỗ trợ sử dụng trên đa nền tảng.
  • Khả năng tùy biến cao.
  • Dễ thực thi.
  • Thích hợp khi xây dựng các chương trình có kích thước nhỏ.

Nhược điểm của Interpreter

  • Chương trình sẽ không có độ uy tín cao.
  • Các chương trình sẽ không được hỗ trợ Multi Thread và Transaction.
  • Mã nguồn có thể xuất hiện tình trạng dịch ngược.
  • Tốc độ thực thi chậm.

Interpreter và Compiler là gì?

Compiler là gì?

Compiler là trình biên dịch, một chương trình máy tính thực hiện việc dịch chuỗi các câu lệnh được tạo ra bằng ngôn ngữ lập trình sang ngôn ngữ máy tính mới và ở bậc thấp hơn.

Chương trình mới được dịch ra thường sẽ được gọi là mã đối tượng.

Ưu điểm của Compiler

  • Chương trình tạo ra sở hữu độ tin cậy cao.
  • Hạn chế được tình trạng dịch ngược mã nguồn.
  • Tốc độ thực thi chương trình nhanh chóng.
  • Hỗ trợ đa luồng và các giao tác.

Nhược điểm của Compiler

  • Xây dựng chương trình đa nền tảng gặp nhiều khó khăn.
  • Việc xây dựng Compiler mang tính chính xác cao để dịch toàn bộ chương trình thành mã máy khá khó khăn.

Interpreter và Compiler là gì?

So sánh giữa Interpreter và Compiler

InterpreterCompiler
Dịch từng câu lệnh trong chương trình ngay tại thời điểm thực hiện.Quét toàn bộ chương trình trong một lần.
Sử dụng chủ yếu các ngôn ngữ Python, Perl, Matlab, Ruby...Sử dụng ngôn ngữ C, C++ và C#.
Yêu cầu mã nguồn cho việc thực thi sau này.Không yêu cầu mã nguồn thực thi sau này.
Mất ít thời gian phân tích mã nguồn, nhưng thời gian thực thi tổng thể khá chậm.Mất nhiều thời gian để phân tích mã nguồn, nhưng thời gian thực thi tổng thể vô cùng nhanh chóng.
Dừng thông dịch nếu phát hiện ra lỗi.Khởi tạo báo cáo lỗi sau khi chuyển đổi toàn bộ mã lệnh.
Lưu trữ ngôn ngữ máy dưới dạng mã máy trên đĩa.Không tiết kiệm mã máy.
Dựa trên mô hình tải ngôn ngữ dịch thuật.Dựa trên phương pháp diễn giải.