Trình biên dịch vs Phiên dịch
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 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ư 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ữ hội và chuyển đổi nó thành 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, Thông dịch viên là các công cụ thực thi các lệnh được viết bằng một số ngôn ngữ lập trình. Trình thông dịch có thể trực tiếp thực thi mã nguồn mức cao hoặc dịch chúng sang mã trung gian và sau đó giải thích nó hoặc thực thi mã được biên dịch trước.
Trình biên dịch là gì?
Trình biên dịch là phần mềm hoặc một công cụ dịch ngôn ngữ hội thành mã máy. Vì vậy, một trình biên 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ữ hội. Hội 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 biên dịch được cho là thực hiện dịch mã đẳng cấu (một đến một ánh xạ). Trình biên dịch nâng cao 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 trình biên dịch được gọi là trình biên dịch macro cung cấp một cơ sở macro.
Thông dịch viên 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 hướng dẫn lập trình. Trình thông dịch có thể thực thi trực tiếp mã nguồn 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ã được biên dịch trước do trình biên dịch tạo ra (một số hệ thống trình 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 diễn giải 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 nguồn thành một mã trung gian được gọi là mã byte và sau đó giải thích nó.
Sự khác biệt giữa Trình biên dịch và Trình thông dịch là gì??
Trình biên 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ội thành mã máy. Thông dịch viên là các công cụ thực thi lệnh được viết bằng một số ngôn ngữ. Các 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 mã trước khi phiên dịch, nhưng một 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. Các trình biên dịch tạo ra một mã đối tượng, có thể phải được liên kết bằng các chương 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 hiện chương trình. Trình biên dịch thường sẽ thực hiện một bản dịch từ một đến một, nhưng điều này không đúng với hầu hết các phiên dịch viên. Bởi vì ngôn ngữ hội có ánh xạ một đến một với mã máy, trình biên dịch có thể được sử dụng để tạo mã chạy rất hiệu quả trong các trường hợp trong đó hiệu suất 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, thông dịch viên được sử dụng khi bạn cần tính di động cao. Ví dụ, cùng mã byte Java có thể được 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).