Trình biên dịch là gì, hoặc Làm thế nào để làm cho máy tính hiểu những gì bạn muốn từ nó?

Mục lục:

Trình biên dịch là gì, hoặc Làm thế nào để làm cho máy tính hiểu những gì bạn muốn từ nó?
Trình biên dịch là gì, hoặc Làm thế nào để làm cho máy tính hiểu những gì bạn muốn từ nó?

Video: Trình biên dịch là gì, hoặc Làm thế nào để làm cho máy tính hiểu những gì bạn muốn từ nó?

Video: Trình biên dịch là gì, hoặc Làm thế nào để làm cho máy tính hiểu những gì bạn muốn từ nó?
Video: #396 Con Người Giao Tiếp Với Máy Móc Như Thế Nào??? | Thông Não Ngôn Ngữ Lập Trình 2024, Tháng mười hai
Anonim

Giai đoạn cuối cùng của việc tạo chương trình là dịch thuật toán được viết bằng một trong các ngôn ngữ lập trình (C / C ++, Pascal, v.v.) sang ngôn ngữ máy cấp thấp. Điều này là do thực tế là để thực hiện bất kỳ tác vụ nào, máy tính cần được cung cấp các lệnh bằng ngôn ngữ mà chúng hiểu, gần với hệ nhị phân và hoạt động với cấu trúc dữ liệu nguyên thủy (bit, byte hoặc từ). Quá trình dịch các câu lệnh miền cụ thể của ngôn ngữ bậc cao sang mã nhị phân được gọi là quá trình dịch. Có hai phương pháp dịch - biên dịch và phiên dịch.

trình biên dịch là
trình biên dịch là

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

Phân tích nhiều cách hiểu của các thuật ngữ "trình biên dịch" và "biên dịch" cho phép chúng tôi làm nổi bật định nghĩa sau. Trình biên dịch là một chương trình được thiết kế để dịch văn bản của thuật toán nguồn từ một ngôn ngữ cấp cao thành một tập hợp các lệnh tương đương trong một ngôn ngữ hướng máy. Đây là cái gọi là mã đối tượng, để lắp ráp mã đối tượng tiếp theo vào một mô-đun chương trình sẵn sàng sử dụng.

Trình biên dịch và thông dịch - điểm giống và khác nhau

Phiên dịch là một tiện íchcũng như một trình biên dịch, được thiết kế để dịch mã nguồn thành mã máy. Tuy nhiên, không giống như trình biên dịch, trình thông dịch chạy chương trình mọi lúc và thực hiện dịch từng dòng một.

Bạn có thể nói rằng trình biên dịch và trình thông dịch là những bộ xử lý ngôn ngữ cho phép máy tính nhận dạng và thực hiện các lệnh do lập trình viên đưa ra.

Phân loại trình biên dịch

trình biên dịch là một chương trình
trình biên dịch là một chương trình

Trình biên dịch được phân loại chủ yếu theo các tính năng liên quan đến lĩnh vực ứng dụng thực tế của chúng.

Vectorizing compiler là một tiện ích dịch mã nguồn thành mã đối tượng và được điều chỉnh cho các máy tính được trang bị bộ xử lý vectơ.

Một trình biên dịch linh hoạt được lập trình bằng ngôn ngữ cấp cao theo kiểu mô-đun. Việc quản lý nó được thực hiện bằng cách sử dụng các bảng. Cũng có thể thực thi nó bằng cách sử dụng trình biên dịch của trình biên dịch.

Trình biên dịch tăng dần là một trình xử lý ngôn ngữ dịch lại các đoạn mã nguồn riêng biệt và bổ sung vào nó. Tuy nhiên, nó tránh biên dịch lại toàn bộ ứng dụng.

Trình biên dịch diễn giải (bước) là một tiện ích thực hiện tuần tự việc biên dịch độc lập từng câu lệnh hoặc lệnh của mã nguồn cấp cao.

Trình biên dịch của các trình biên dịch là trình biên dịch có khả năng chấp nhận mô tả chính thức cho ngôn ngữ lập trình và tạo độc lập trình biên dịch cho bất kỳ ngôn ngữ nào.

trình biên dịch và thông dịch viên
trình biên dịch và thông dịch viên

Trình biên dịch gỡ lỗi cho phép bạn tìm và sửa một số lỗi cú pháp mắc phải khi viết mã nguồn

Một trình biên dịch thường trú chiếm một vị trí vĩnh viễn trong RAM và do đó có thể tái sử dụng bởi nhiều tác vụ.

Trình biên dịch tự biên dịch được viết bằng ngôn ngữ giống như bản dịch.

Trình biên dịch phổ quát dựa trên mô tả chính thức về các tham số ngữ nghĩa và cú pháp của ngôn ngữ đầu vào. Các thành phần chính của một tiện ích như vậy là bộ tải cốt lõi, cú pháp và ngữ nghĩa.

Thiết bị biên dịch

Trình biên dịch và trình liên kết là trung tâm của bất kỳ trình biên dịch nào. Thông thường, khi biên dịch, một trình liên kết bên ngoài được sử dụng và bản thân trình biên dịch chỉ thực hiện chức năng dịch. Cũng có thể xảy ra rằng trình biên dịch được triển khai như một loại chương trình quản lý được liên kết với trình biên dịch (hoặc trình dịch, nếu các ngôn ngữ lập trình khác nhau được sử dụng khi viết mã nguồn) và trình liên kết và bắt đầu thực thi chúng khi cần thiết.

Ngôn ngữ lập trình và phương pháp dịch

trình biên dịch ngôn ngữ
trình biên dịch ngôn ngữ

Mặc dù thực tế là một chương trình được viết bằng bất kỳ ngôn ngữ lập trình nào đều có thể được biên dịch và thông dịch, nhưng nhiều ngôn ngữ cấp cao có khuynh hướng sử dụng một hoặc một phương pháp dịch khác. Vì vậy, ngôn ngữ C ban đầu được thiết kế để biên dịch và Java - để diễn giải chương trình đã viết. Đang được phát triểnCác trình biên dịch C khá dễ dàng, nhờ vào mức độ tương đối thấp và một số lượng nhỏ các phần tử cấu trúc.

Ưu và nhược điểm của trình biên dịch và thông dịch. Ứng dụng

Lưu ý rằng các ứng dụng được biên dịch nhanh hơn các ứng dụng được thông dịch, nhưng đồng thời, mã máy thu được là kết quả của quá trình biên dịch phụ thuộc vào nền tảng phần cứng. Vì vậy, một chương trình được viết và biên dịch cho Windows sẽ không hoạt động, chẳng hạn như trong Linux. Do đó, đối với các ứng dụng Internet, khi không thể nói trước chúng sẽ hoạt động trong môi trường nào, chúng sẽ sử dụng phương pháp diễn giải hoặc mã bytecode (trong trường hợp này, chương trình nguồn được chuyển thành dạng trung gian có thể thực thi trên nhiều phần cứng khác nhau). nền tảng).

Đề xuất: