Sự khác biệt giữa lắp ráp và trình biên dịch

Anonim

Assembler vs Compiler

Nói chung, trình biên dịch là một chương trình máy tính đọc một chương trình được viết bằng một ngôn ngữ, gọi là ngôn ngữ nguồn, và dịch nó sang một ngôn ngữ khác, được gọi là ngôn ngữ đích. Theo truyền thống, ngôn ngữ nguồn là một ngôn ngữ cấp cao như C ++ và ngôn ngữ đích là một ngôn ngữ bậc thấp như ngôn ngữ Assembly. Tuy nhiên, có những trình biên dịch có thể chuyển đổi một chương trình nguồn được viết bằng ngôn ngữ Assembly và chuyển nó sang mã máy hoặc mã đối tượng. Người lắp ráp là những công cụ như vậy. Vì vậy, cả hai nhà lắp ráp và trình biên dịch cuối cùng sản xuất mã có thể được trực tiếp thực hiện trên máy.

Trình biên dịch là gì?

Trình biên dịch là một chương trình máy tính đọc một chương trình viết bằng một ngôn ngữ, được gọi là ngôn ngữ nguồn, và dịch nó sang một ngôn ngữ khác, được gọi là ngôn ngữ đích. Thông thường, ngôn ngữ nguồn là một ngôn ngữ cấp cao và ngôn ngữ đích là một ngôn ngữ bậc thấp. Vì vậy, trong trình biên dịch chung có thể được xem như dịch giả dịch từ ngôn ngữ này sang ngôn ngữ khác. Ngoài ra, trình biên dịch thực hiện một số tối ưu hóa cho mã. Một trình biên dịch điển hình được tạo thành từ một số thành phần chính. Thành phần đầu tiên là máy quét (còn gọi là máy phân tích tiếng). Máy quét sẽ đọc chương trình và chuyển đổi nó thành một chuỗi các mã thông báo. Thành phần thứ hai là bộ phân tích cú pháp. Nó chuyển đổi chuỗi các mã thông báo thành một cây phân tích cú pháp (hoặc một cây cú pháp trừu tượng), chứa cấu trúc cú pháp của chương trình. Thành phần tiếp theo là các thói quen ngữ nghĩa để diễn giải ngữ nghĩa của cấu trúc cú pháp. Việc tối ưu hóa mã và việc tạo mã cuối cùng theo dõi điều này.

Người lắp ráp là gì?

Assembler là một phần mềm hoặc một công cụ dịch ngôn ngữ Assembly sang mã máy. Vì vậy, một assembler là một loại trình biên dịch và mã nguồn được viết bằng ngôn ngữ Assembly. Hội là một ngôn ngữ có thể đọc được của con người nhưng thông thường nó có một mối quan hệ 1-1 với mã máy tương ứng. Vì vậy, một nhà lắp ráp được cho là thực hiện bản dịch isomorphic (một đến một bản đồ). Các nhà lắp ráp tiên tiến cung cấp các tính năng bổ sung hỗ trợ quá trình phát triển và gỡ lỗi chương trình. Ví dụ, loại lắp ráp được gọi là các nhà lắp ráp vĩ mô cung cấp một cơ sở vĩ mô.

sự khác biệt giữa một Assembler và một trình biên dịch là gì?

Trình biên dịch là một chương trình máy tính đọc một chương trình được viết bằng một ngôn ngữ và dịch nó sang một ngôn ngữ khác, trong khi assembler có thể được coi là một trình biên dịch đặc biệt chỉ chuyển ngôn ngữ Assembly sang mã máy. Trình biên dịch thường sản xuất mã máy thực thi trực tiếp từ ngôn ngữ cấp cao, nhưng các nhà lắp ráp sản xuất một mã đối tượng có thể phải liên kết bằng các chương trình liên kết để chạy trên máy.Bởi vì ngôn ngữ Assembly có một bản đồ một với mã máy, một assembler có thể được sử dụng để sản xuất mã hoạt động rất hiệu quả cho các dịp mà trong đó hiệu năng rất quan trọng (ví dụ như các công cụ đồ hoạ, các hệ thống nhúng với tài nguyên phần cứng hạn chế so với máy tính cá nhân như lò vi sóng, máy giặt, vv).