Sự khác nhau giữa trình biên dịch và trình thông dịch

Trình biên dịch là trình dịch chuyển đổi từ tiếng nói nguồn (các tiếng nói lập trình bậc cao) thành tiếng nói đối tượng người tiêu dùng (ví dự như tiếng nói máy). Trái lại với trình biên dịch, trình thông dịch là một Khóa học bắt chước việc thực hiện của đa số Khóa học được viết bằng tiếng nói nguồn.

Rõ ràng, khả năng nhận thức của con người và một thiết bị điện tử như máy tính là khác nhau. Con người dân có thể hiểu bất kỳ điều gì thông qua các tiếng nói tự nhiên, nhưng một máy tính thì không thể. Máy tính cần một trình dịch để chuyển đổi các tiếng nói được viết ở dạng tiếng nói mà con người dân có thể đọc thành dạng tiếng nói mà máy tính có thể đọc.

Trình biên dịch và trình thông dịch là các loại trình dịch tiếng nói. Vậy trình dịch tiếng nói là gì?

Trình dịch tiếng nói là một phần mềm dịch các Khóa học từ một tiếng nói nguồn ở dạng có thể đọc được bởi con người thành một Khóa học tương đương bằng tiếng nói đối tượng người tiêu dùng. Tiếng nói nguồn nói chung là tiếng nói lập trình cấp cao và ngôn đối tượng người tiêu dùng thường là tiếng nói máy.

Bảng so sánh

Tiêu chí Trình biện dịch Trình thông dịch Nguồn vào Toàn bộ trường trình Chỉ một dòng code Đầu ra Mã đối tượng người tiêu dùng trung gian Không tạo ra bất kì mã đối tượng người tiêu dùng trung gian nào Cơ chế hoạt động Việc biên dịch sẽ phải hoàn thành công việc trước lúc thực thi Việc biên dịch và thực thi sẽ là song song Tốc độ Nhanh hơn Chậm hơn Bộ nhớ Yêu cầu bộ nhớ nhiều hơn do việc tạo mã đối tượng người tiêu dùng Nó yên cầu ít bộ nhớ hơn vì nó không tạo mã đối tượng người tiêu dùng trung gian Errors Hiển thị tất cả những lỗi sau lúc biên dịch, tất cả cùng một lúc Hiển thị lỗi của từng dòng một Phát hiện error Rất khó khăn Tương đối dễ Các tiếng nói lập trình C, C++, C#, Scala, typescript PHP, Perl, Python, Ruby

Khái niệm trình biên dịch

Trình biên dịch là một trình dịch đọc một Khóa học được viết bằng tiếng nói cấp cao và chuyển đổi nó thành tiếng nói máy hoặc tiếng nói thấp cấp và báo cáo giải trình các lỗi có trong Khóa học. Nó chuyển đổi toàn bộ mã nguồn trong một lần hoặc có thể mất nhiều lượt để làm như vậy, nhưng cuối cùng, người dùng sẽ nhận được mã được biên dịch sẵn sàng để thực thi.

Trình biên dịch hoạt động theo từng thời đoạn, các thời đoạn khác nhau có thể được nhóm thành hai phần đó là:

  • Thời đoạn phân tích của trình biên dịch cũng được gọi là phần đầu; trong đó Khóa học được chia thành các phần cấu thành cơ bản và kiểm tra ngữ pháp, ngữ nghĩa và cú pháp của mã sau lúc mã trung gian được tạo. Thời đoạn phân tích gồm có phân tích từ vựng, phân tích ngữ nghĩa và phân tích cú pháp.
  • Thời đoạn tổng hợp của trình biên dịch còn được gọi là phần cuối; trong đó mã trung gian được tối ưu hóa và mã đích được tạo. Thời đoạn tổng hợp gồm có trình tối ưu hóa mã và trình tạo mã.

Các thời đoạn biên dịch

Lúc này hãy để cụ thể hiểu về hoạt động của từng thời đoạn.

  1. Trình phân tích từ vựng: Nó quét mã dưới dạng nhóm ký tự, nhóm chuỗi ký tự thành từ vựng và đưa ra chuỗi mã thông tin có tham chiếu đến tiếng nói lập trình.
  2. Trình phân tích cú pháp: Trong thời đoạn này, các mã thông tin được tạo trong thời đoạn trước được kiểm tra theo ngữ pháp của tiếng nói lập trình, cho dù các biểu thức có đúng về mặt cú pháp hay là không.
  3. Trình phân tích ngữ nghĩa: Nó xác minh xem những biểu thức và câu lệnh được tạo trong thời đoạn trước có tuân theo quy tắc của tiếng nói lập trình hay là không và nó tạo ra các cây phân tích chú thích.
  4. Trình tạo mã trung gian: Nó tạo ra một mã trung gian tương đương của mã nguồn. Có vô số cách thức trình bày mã trung gian, nhưng TAC (Mã địa chỉ ba) được sử dụng rộng rãi nhất.
  5. Trình tối ưu hóa mã: Nó cải thiện yêu cầu về thời kì và không gian của Khóa học. Để làm như vậy, nó loại bỏ mã dự phòng có trong Khóa học.
  6. Trình tạo mã: Đây là thời đoạn cuối cùng của trình biên dịch trong đó mã đích cho một máy cụ thể được tạo. Nó thực hiện những hoạt động sinh hoạt như quản lý bộ nhớ, gán đăng ký và tối ưu hóa cụ thể cho máy.

Symbol table (bảng ký hiệu) là một cấu trúc tài liệu quản lý các mã định danh cùng với loại tài liệu có liên quan mà nó đang lưu trữ. Trình xử lý lỗi phát hiện, báo cáo giải trình, sửa các lỗi gặp phải giữa các thời đoạn khác nhau của trình biên dịch.

Khái niệm trình thông dịch

Trình thông dịch là một thay thế để thực thi một tiếng nói lập trình và thực hiện công việc tương tự như một trình biên dịch. Trình thông dịch thực hiện kiểm tra từ vựng, phân tích cú pháp và kiểm tra các kiểu tương tự như trình biên dịch. Nhưng trình thông dịch xử lý cây cú pháp trực tiếp để truy cập các biểu thức và thực thi câu lệnh thay vì tạo mã trung gian.

Một trình thông dịch có thể yêu cầu xử lý cùng một cây cú pháp nhiều lần, đó là lý do vì sao tốc độ sẽ đối chậm hơn so với thực hiện Khóa học được biên dịch.

Việc biên dịch và thông dịch phối hợp để sở hữu thể thực thi tiếng nói lập trình. Trong số đó một trình biên dịch tạo mã ở cấp trung gian, sau đó mã được diễn giải thay vì được biên dịch thành mã máy.

Sử dụng một trình thông dịch thì sẽ thuận tiện trong quá trình phát triển Khóa học, trong đó phần quan trọng nhất là có thể kiểm tra việc sửa đổi Khóa học một cách nhanh chóng thay vì chạy Khóa học một cách hiệu quả.

Tổng kết

Cả trình biên dịch và trình thông dịch đều sở hữu cùng một công việc nhưng khác nhau về quy trình vận hành, Trình biên dịch lấy mã nguồn Theo phong cách tổng hợp trong những lúc Trình thông dịch lấy các phần cấu thành của mã nguồn.

Mặc dù cả trình biên dịch và trình thông dịch đều sở hữu những ưu điểm và nhược điểm nhất định. Với trình thông dịch thì mã nguồn có thể thực thi ở mọi nơi mà không cần thiết phải biên dịch trước. Nhưng bù lại thì trình biên dịch sẽ tiết kiệm ngân sách và chi phí thời kì thực thi hơn.

You May Also Like

About the Author: v1000