Sự khác biệt giữa Trình biên dịch và Trình biên dịch

Tác Giả: Laura McKinney
Ngày Sáng TạO: 1 Tháng Tư 2021
CậP NhậT Ngày Tháng: 10 Có Thể 2024
Anonim
Sự khác biệt giữa Trình biên dịch và Trình biên dịch - Công Nghệ
Sự khác biệt giữa Trình biên dịch và Trình biên dịch - Công Nghệ

NộI Dung


Trình biên dịch và Trình biên dịch đóng vai trò quan trọng trong việc thực hiện chương trình. Một số trình biên dịch trực tiếp tạo mã thực thi thay vì mã lắp ráp. Trình biên dịch lấy mã nguồn được xử lý trước và dịch nó thành mã lắp ráp. Trình biên dịch lấy mã lắp ráp từ trình biên dịch và dịch nó sang mã máy có thể định vị lại. Trong bài viết này, tôi đã thảo luận về sự khác biệt giữa trình biên dịch và trình biên dịch với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới, chỉ cần xem qua.

  1. Biểu đồ so sánh
  2. Định nghĩa
  3. Sự khác biệt chính
  4. Phần kết luận

Biểu đồ so sánh

Cơ sở để so sánhTrình biên dịch Nhà lắp ráp
Căn bảnTạo mã ngôn ngữ lắp ráp hoặc trực tiếp mã thực thi.Tạo mã máy có thể di dời.
Đầu vàoMã nguồn được xử lý trước.Mã ngôn ngữ hội.
Các pha / PassCác giai đoạn biên dịch là phân tích từ vựng, phân tích cú pháp, phân tích ngữ nghĩa, tạo mã trung gian, tối ưu hóa mã, tạo mã.Trình biên dịch tạo hai lần vượt qua đầu vào đã cho.
Đầu raMã lắp ráp được tạo bởi trình biên dịch là một phiên bản ghi nhớ của mã máy.Mã máy có thể định vị lại được tạo bởi trình biên dịch chương trình được thể hiện bằng mã nhị phân.


Định nghĩa trình biên dịch

Các trình biên dịch là một chương trình máy tính đọc chương trình được viết bằng ngôn ngữ nguồn, dịch nó thành tương đương Hợp ngữ và chuyển tiếp mã ngôn ngữ lắp ráp đến Nhà lắp ráp. Trong khi dịch mã nguồn sang mã lắp ráp, trình biên dịch cũng báo cáo lỗi trong mã nguồn cho người dùng của nó.

Trình biên dịch cũng được phân loại là một lượt, nhiều lượt, tải và đi, gỡ lỗi và tối ưu hóa. Phân loại được thực hiện trên cơ sở chức năng nào trình biên dịch thực hiện và cách nó được xây dựng. Mặc dù có những phức tạp này, nhiệm vụ cơ bản của trình biên dịch vẫn giống nhau.

Việc biên dịch được thực hiện trong hai phần, phần phân tích phần tổng hợp. Các phần phân tích chia mã nguồn thành các phần cấu thành và tạo thành biểu diễn trung gian của mã nguồn. Các phần tổng hợp hình thành mã đích từ biểu diễn trung gian.


Việc biên dịch được thực hiện trong các giai đoạn sau:

Trình phân tích từ điển, phân tích cú pháp, phân tích ngữ nghĩa, trình tạo mã trung gian, trình tối ưu hóa mã, trình tạo mã, Bảng biểu tượng và Trình xử lý lỗi.

  • Các máy phân tích từ vựng đọc các ký tự của mã nguồn và nhóm chúng vào dòng mã thông báo. Mỗi mã thông báo đại diện cho chuỗi logic của các ký tự như từ khóa, định danh, toán tử. Chuỗi ký tự hình thành mã thông báo được gọi là từ vựng.
  • Các phân tích cú pháp phân tích mã thông báo thu được từ máy phân tích từ vựng và nhóm mã thông báo thành một cấu trúc phân cấp.
  • Các máy phân tích ngữ nghĩa kiểm tra mã nguồn cho bất kỳ lỗi ngữ nghĩa.
  • Trình tạo mã trung gian tạo ra đại diện trung gian của mã nguồn
  • Các tối ưu hóa mã tối ưu hóa mã trung gian thành mã máy chạy nhanh hơn.
  • Các trình tạo mã cuối cùng tạo mã đích là một mã máy có thể di dời hoặc mã lắp ráp.
  • Các bảng biểu tượng là cấu trúc dữ liệu chứa bản ghi cho từng mã định danh trong mã nguồn.
  • Xử lý lỗi phát hiện lỗi trong từng giai đoạn và xử lý các lỗi đó.

Định nghĩa của Trình biên dịch

Một số trình biên dịch thực hiện nhiệm vụ của trình biên dịch chương trình và trực tiếp tạo mã máy có thể định vị lại thay vì mã lắp ráp, tiếp tục được chuyển trực tiếp đến trình liên kết / trình tải. Các lắp ráp lấy làm đầu vào mã lắp ráp được tạo bởi trình biên dịch và dịch nó thành mã máy di dời.

Hãy cho chúng tôi xem mã máy khác với mã lắp ráp như thế nào. Mã hộighi nhớ phiên bản mã máy. Nó có nghĩa là mã lắp ráp sử dụng tên để biểu diễn các hoạt động và thậm chí nó còn đặt tên cho các địa chỉ bộ nhớ. Mặt khác, mã máy sử dụng mã nhị phân để đại diện cho các hoạt động và địa chỉ bộ nhớ.

Ngay cả hình thức lắp ráp đơn giản nhất cũng thực hiện hai đường chuyền qua đầu vào. Các đầu tiên vượt qua phát hiện tất cả định danh trong mã lắp ráp biểu thị vị trí lưu trữ và lưu trữ chúng trong bảng biểu tượng (trừ bảng biểu tượng trình biên dịch). Các vị trí lưu trữ được chỉ định đến định danh gặp phải trong lần đầu tiên.

bên trong đường chuyền thứ hai, đầu vào được quét lại và lần này là mã hoạt độngdịch thành một chuỗi bit đại diện cho hoạt động đó trong mã máy. Đèo thứ hai cũng dịch định danh vào địa chỉ được định nghĩa trong bảng ký hiệu. Do đó, đường chuyền thứ hai tạo ra mã máy di dời.

  1. Sự khác biệt chính giữa trình biên dịch và trình biên dịch là trình biên dịch tạo mã lắp ráp và một số trình biên dịch cũng có thể trực tiếp tạo mã thực thi trong khi, lắp ráp tạo mã máy có thể di dời.
  2. Trình biên dịch lấy làm đầu vào mã tiền xử lý được tạo ra bởi tiền xử lý. Mặt khác, trình biên dịch chương trình mã lắp ráp làm đầu vào.
  3. Quá trình biên dịch diễn ra theo hai giai đoạn giai đoạn phân tích giai đoạn tổng hợp. Trong giai đoạn phân tích, đầu vào đi qua phân tích từ vựng, phân tích cú pháp, phân tích ngữ nghĩa trong khi đó, phân tích tổng hợp diễn ra thông qua trình tạo mã trung gian, tối ưu hóa mã, tạo mã. Mặt khác, trình biên dịch chuyển đầu vào thông qua hai giai đoạn. Giai đoạn đầu tiên phát hiện các định danh và phân bổ địa chỉ cho chúng trong giai đoạn thứ hai, mã lắp ráp được dịch thành mã nhị phân.
  4. Mã lắp ráp được tạo bởi trình biên dịch là một phiên bản ghi nhớ mã máy. Tuy nhiên, mã máy có thể định vị lại được tạo bởi trình biên dịch chương trình là một mã di chuyển nhị phân.

Phần kết luận:

Trình biên dịch có thể không được yêu cầu vì một số trình biên dịch trực tiếp tạo mã thực thi. Nếu trình biên dịch được sử dụng, nó yêu cầu trình liên kết để liên kết tất cả các thư viện tích hợp với các hàm thư viện được sử dụng trong mã nguồn.