Sự khác biệt giữa Trình lắp ráp và Trình thông dịch

Sự khác biệt giữa Trình lắp ráp và Trình thông dịch
Sự khác biệt giữa Trình lắp ráp và Trình thông dịch

Video: Sự khác biệt giữa Trình lắp ráp và Trình thông dịch

Video: Sự khác biệt giữa Trình lắp ráp và Trình thông dịch
Video: [Lập Trình C] Bài 27: Static Library 2024, Tháng bảy
Anonim

Assembler vs Interpreter

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ữ, đượ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. Theo truyền thống, ngôn ngữ nguồn là ngôn ngữ cấp cao như C ++ và ngôn ngữ đích là ngôn ngữ cấp thấp như hợp ngữ. 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. Nhà lắp ráp là những công cụ như vậy. Mặt khác, Trình thông dịch là công cụ thực thi các lệnh được viết bằng ngôn ngữ lập trình nào đó. Trình thông dịch có thể thực thi trực tiếp mã nguồn cấp cao hoặc dịch chúng sang mã trung gian rồi diễn giải hoặc thực thi mã biên dịch trước.

Trình lắp ráp là gì?

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

Phiên dịch là gì?

Trình thông dịch là một chương trình máy tính hoặc một công cụ thực hiện các lệnh lập trình. Trình thông dịch có thể thực thi mã nguồn trực tiếp hoặc chuyển đổi nguồn thành mã trung gian và thực thi trực tiếp hoặc thực thi mã biên dịch trước do trình biên dịch tạo ra (một số hệ thống thông dịch bao gồm trình biên dịch cho tác vụ này). Các ngôn ngữ như Perl, Python, MATLAB và Ruby là những ví dụ về ngôn ngữ lập trình sử dụng mã trung gian. UCSD Pascal thông dịch một mã được biên dịch trước. Các ngôn ngữ như Java, BASIC và Samlltalk trước tiên biên dịch mã nguồn thành một mã trung gian gọi là bytecode và sau đó diễn giải nó.

Sự khác biệt giữa Trình lắp ráp và Trình thông dịch là gì?

Trình hợp dịch có thể được coi là một loại trình biên dịch đặc biệt, chỉ dịch ngôn ngữ Hợp ngữ sang mã máy. Thông dịch viên là công cụ thực hiện hướng dẫn được viết bằng một số ngôn ngữ. Hệ thống thông dịch viên có thể bao gồm một trình biên dịch để biên dịch trước mã trước khi thông dịch, nhưng trình thông dịch không thể được gọi là một loại trình biên dịch đặc biệt. Bộ lắp ráp tạo ra một mã đối tượng, mã này có thể phải được liên kết bằng cách sử dụng các chương trình trình liên kết để chạy trên máy, nhưng hầu hết các trình thông dịch có thể tự hoàn thành việc thực thi một chương trình. Thông thường, một nhà biên dịch sẽ thực hiện bản dịch 1-1, nhưng điều này không đúng với hầu hết các thông dịch viên. Bởi vì ngôn ngữ hợp ngữ có ánh xạ 1-1 với mã máy, trình hợp dịch có thể được sử dụng để tạo ra mã chạy rất hiệu quả cho những trường hợp mà hiệu suất là rất quan trọng (ví dụ: công cụ đồ họa, hệ thống nhúng có 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, v.v.). Mặt khác, máy phiên dịch được sử dụng khi bạn cần tính di động cao. Ví dụ: cùng một mã byte Java có thể chạy trên các nền tảng khác nhau bằng cách sử dụng trình thông dịch thích hợp (JVM).

Đề xuất: