Sự khác nhau giữa Assembler và Interpreter

Anonim

Assembler vs Interpreter

Nhìn 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ữ cấp thấp như ngôn ngữ hội. 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. Mặt khác, Phiên dịch là công cụ thực hiện các hướng dẫn viết bằng ngôn ngữ lập trình. Trình thông dịch có thể trực tiếp thực hiện mã nguồn cấp cao hoặc dịch chúng sang mã trung gian và sau đó giải thích nó hoặc thực hiện mã biên dịch trước.

Một người lắp ráp là gì?

Assembler là 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ô.

Phiên dịch là gì?

Thông dịch viên là một chương trình máy tính hoặc một công cụ thực hiện các hướng dẫn lập trình. Một thông dịch viên có thể trực tiếp thực hiện mã nguồn hoặc chuyển đổi nguồn sang mã trung gian và thực hiện trực tiếp hoặc thực hiện mã biên dịch được tạo ra bởi trình biên dịch (một số hệ thống thông dịch bao gồm trình biên dịch cho nhiệm 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 giải thích một mã biên dịch trước. Các ngôn ngữ như Java, BASIC và Samlltalk đầu tiên biên dịch mã nguồn đến mã trung gian được gọi là bytecode và sau đó giải thích nó.

Sự khác nhau giữa một Assembler và một Phiên dịch là gì?

Một assembler có thể được coi là một loại trình biên dịch đặc biệt, chỉ dịch ngôn ngữ Assembly sang mã máy. Phiên dịch là công cụ thực hiện các chỉ dẫn được viết bằng một số ngôn ngữ. Các hệ thống thông dịch có thể bao gồm một trình biên dịch để biên dịch trước mã trước khi giải thích, nhưng thông dịch viên không thể được gọi là một loại trình biên dịch đặc biệt. 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, nhưng đa số phiên dịch viên có thể hoàn thành việc thực hiện một chương trình của mình.Một nhà lắp ráp thường sẽ thực hiện một bản dịch một, nhưng điều này không đúng đối với hầu hết phiên dịch. 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). Mặt khác, phiên dịch được sử dụng khi bạn cần tính di động cao. Ví dụ, bytecode Java tương tự 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).