Chương trình biên dịch gồm các bước

Trình biên dịch là một chương trình máy tính giúp bạn chuyển đổi mã nguồn được viết bằng ngôn ngữ cấp cao thành ngôn ngữ máy cấp thấp.

Đang xem: Trình biên dịch là gì

Nó dịch mã được viết bằng một ngôn ngữ lập trình sang một ngôn ngữ khác mà không thay đổi ý nghĩa của mã. Trình biên dịch cũng làm cho mã kết quả được tối ưu hóa cho thời gian thực hiện và không gian bộ nhớ.

Quá trình biên dịch bao gồm các cơ chế dịch thuật cơ bản và phát hiện lỗi. Quá trình biên dịch đi qua phân tích từ vựng, cú pháp và phân tích ngữ nghĩa ở giao diện người dùng, tạo mã và tối ưu hóa mã ở phía sau.

Chương trình biên dịch gồm các bước

Các tính năng của trình biên dịch

Sự chính xác.Tốc độ biên dịch.Giữ nguyên ý nghĩa của mã.Tốc độ của mã đích.Nhận ra các cấu trúc chương trình hợp lệ và không hợp lệ.Báo cáo / xử lý lỗi tốt.Mã trợ giúp gỡ lỗi.

Các loại trình biên dịch

Trình biên dịch một lần.Trình biên dịch hai lần.Trình biên dịch nhiều lần.

Trình biên dịch một lần

Chương trình biên dịch gồm các bước

Trình biên dịch trực tiếp chuyển đổi mã nguồn thành mã máy. Ví dụ, ngôn ngữ Pascal.

Trình biên dịch hai lần

Chương trình biên dịch gồm các bước

Trình biên dịch hai lần được chia thành hai giai đoạn.

Font end: Nó ánh xạ mã hợp lệ thành mã trung gian (IR).Back end: Nó ánh xạ IR thành mã thực thi trên máy đích.

Phương pháp trình biên dịch hai lần cho phép chương trình chạy được trên nhiều nên tảng khác nhau mà không phải viết lại trình biên dịch. Ví dụ: ngôn ngữ lập trình Java, C#.

Trình biên dịch nhiều lần

Chương trình biên dịch gồm các bước

Trình biên dịch nhiều lần xử lý mã nguồn hoặc cây cú pháp của một chương trình nhiều lần.

Nó chia một chương trình lớn thành nhiều chương trình nhỏ và xử lý chúng. Nó phát triển nhiều mã trung gian.

Tất cả các bội số này lấy đầu ra của pha trước làm đầu vào. Vì vậy, nó đòi hỏi ít bộ nhớ hơn. Nó còn được gọi là “Trình biên dịch rộng”.

Nhiệm vụ của trình biên dịch

Các tác vụ chính được thực hiện bởi trình biên dịch là:

Chia chương trình nguồn thành từng phần và áp đặt cấu trúc ngữ pháp lên chúng.Cho phép bạn xây dựng chương trình mục tiêu mong muốn từ đại diện trung gian và cũng tạo bảng ký hiệu.Biên dịch mã nguồn và phát hiện lỗi trong đó.Quản lý lưu trữ tất cả các biến và mã.Hỗ trợ biên dịch riêng biệt.Đọc, phân tích toàn bộ chương trình và dịch sang ngôn ngữ khác tương đương về mặt ngữ nghĩa.Dịch mã nguồn thành mã đối tượng tùy thuộc vào loại máy.

Xem thêm:   Cáp Mhl Là Gì - Tìm Hiểu Chuẩn Mhl Là Gì, Mua Cáp Mhl Ở Đâu

Lịch sử trình biên dịch

Lịch sử của trình biên dịch như sau:

Từ “trình biên dịch” được sử dụng lần đầu tiên vào đầu những năm 1950 bởi Grace Murray Hopper.Trình biên dịch đầu tiên được xây dựng bởi John Backum và nhóm của ông từ năm 1954 đến 1957 tại IBM.COBOL là ngôn ngữ lập trình đầu tiên được biên dịch trên nhiều nền tảng vào năm 1960.Nghiên cứu về các vấn đề quét và phân tích cú pháp đã được theo đuổi trong những năm 1960 và 1970 để cung cấp một giải pháp hoàn chỉnh.

Các bước cho hệ thống xử lý ngôn ngữ

Trước khi biết về khái niệm trình biên dịch, trước tiên bạn cần hiểu một vài công cụ khác hoạt động với trình biên dịch.

Xem thêm: Cách Nấu Cá Song Hấp Xì Dầu Thơm Ngon Bổ Dưỡng, Giải Đáp: Cá Song Chế Biến Món Gì Ngon

Chương trình biên dịch gồm các bước

Bộ tiền xử lý (Preprocessor): Bộ tiền xử lý được coi là một phần của trình biên dịch. Nó là một công cụ tạo đầu vào cho trình biên dịch. Nó liên quan đến xử lý vĩ mô, tăng cường, mở rộng ngôn ngữ, v.v.Trình thông dịch (Interpreter): Trình thông dịch giống như trình biên dịch, dịch ngôn ngữ cấp cao sang ngôn ngữ máy cấp thấp. Sự khác biệt chính giữa cả hai là trình thông dịch đọc và biến đổi dòng mã theo từng dòng. Trình biên dịch đọc toàn bộ mã cùng một lúc và tạo mã máy.Trình biên dịch hợp ngữ (Assembler): Nó dịch mã hợp ngữ (assembly) thành ngôn ngữ máy. Kết quả đầu ra của trình biên dịch hợp ngữ được gọi là một tệp đối tượng là sự kết hợp của chỉ thị máy cũng như dữ liệu cần thiết để lưu trữ các chỉ thị này trong bộ nhớ.Trình liên kết (Linker): Trình liên kết giúp bạn liên kết và hợp nhất các tệp đối tượng khác nhau để tạo thành một tệp thực thi. Tất cả các tệp này có thể đã được biên dịch với các trình biên dịch riêng biệt. Nhiệm vụ chính của một trình liên kết là tìm kiếm các mô-đun được gọi trong một chương trình và tìm ra vị trí bộ nhớ nơi tất cả các mô-đun được lưu trữ.Trình tải (Loader): Trình tải là một phần của hệ điều hành (HĐH), thực hiện các tác vụ tải các tệp thực thi vào bộ nhớ và chạy chúng. Nó cũng tính toán kích thước của một chương trình tạo thêm không gian bộ nhớ.Trình biên dịch chéo (Cross-compiler): Trình biên dịch chéo tạo mã thực thi đa nền tảng.Trình biên dịch mã nguồn (Source-to-source Compiler): Trình biên dịch nguồn thành nguồn là thuật ngữ được sử dụng khi mã nguồn của một ngôn ngữ lập trình được dịch sang mã nguồn của ngôn ngữ khác.

Xem thêm:   Nox Là Gì - 7 Cấu Hình Máy Tính Chạy Giả Lập Nox Player

Công cụ xây dựng trình biên dịch

Các công cụ xây dựng trình biên dịch đã được giới thiệu khi các công nghệ liên quan đến máy tính lan rộng khắp thế giới.

Các công cụ này sử dụng ngôn ngữ hoặc thuật toán cụ thể để chỉ định và triển khai thành phần của trình biên dịch.

Trình tạo máy quét: Công cụ này lấy các biểu thức thông thường làm đầu vào. Ví dụ: LEX cho hệ điều hành Unix.Các công cụ dịch hướng cú pháp: Các công cụ phần mềm này cung cấp một mã trung gian bằng cách sử dụng cây phân tích cú pháp. Nó có một mục tiêu là liên kết một hoặc nhiều bản dịch với mỗi nút của cây phân tích cú pháp.Trình phân tích cú pháp: Trình phân tích cú pháp lấy ngữ pháp làm đầu vào và tự động tạo mã nguồn có thể phân tích các luồng ký tự với sự trợ giúp của ngữ pháp.Trình tạo mã tự động: Lấy mã trung gian và chuyển đổi chúng thành mã máyCông cụ luồng dữ liệu: Công cụ này hữu ích cho việc tối ưu mã. Ở đây, thông tin được cung cấp bởi người dùng và mã trung gian được so sánh để phân tích bất kỳ mối quan hệ nào. Nó còn được gọi là phân tích luồng dữ liệu. Nó giúp bạn tìm ra cách các giá trị được truyền từ một phần của chương trình sang một phần khác.

Tại sao nên sử dụng trình biên dịch?

Trình biên dịch xác minh toàn bộ chương trình, do đó không có lỗi cú pháp hoặc ngữ nghĩa.Tệp thực thi được tối ưu hóa bởi trình biên dịch, vì vậy nó được thực thi nhanh hơn.Cho phép bạn tạo cấu trúc nội bộ trong bộ nhớ.Không cần biên dịch lại chương trình trên cùng một máy đã được biên dịch.Dịch toàn bộ chương trình sang ngôn ngữ khác.Tạo tập tin trên đĩa.Liên kết các tập tin thành một định dạng thực thi.Kiểm tra lỗi cú pháp và kiểu dữ liệu.Giúp bạn nâng cao hiểu biết về ngữ nghĩa ngôn ngữ.Giúp xử lý các vấn đề về hiệu suất ngôn ngữ.Cơ hội cho một dự án lập trình không quan trọng.Các kỹ thuật được sử dụng để xây dựng trình biên dịch cũng có thể hữu ích cho các mục đích khác.

Xem thêm:   WWW là gì ? Ý nghĩa của WWW là như thế nào?

Xem thêm: Đắp Tượng Con Trâu Xi Măng Trọng Thắng, Trâu Xi Măng Trọng Thắng

Ứng dụng Trình biên dịch

Thiết kế trình biên dịch giúp thực hiện đầy đủ các ngôn ngữ lập trình cấp cao.Hỗ trợ tối ưu hóa cho kiến ​​trúc máy tính song song.Thiết kế hệ thống phân cấp bộ nhớ mới của máy móc.Được sử dụng rộng rãi cho các chương trình dịch.Được sử dụng với các công cụ sản xuất phần mềm khác.

Tóm lược

Trình biên dịch là một chương trình máy tính giúp bạn chuyển đổi mã nguồn được viết bằng ngôn ngữ cấp cao thành ngôn ngữ máy cấp thấp.Tính chính xác, tốc độ biên dịch, giữ đúng ý nghĩa của mã là một số tính năng quan trọng của thiết kế trình biên dịch.Trình biên dịch được chia thành ba loại 1) Trình biên dịch một lần 2) Trình biên dịch hai lần và 3) Trình biên dịch nhiều lần.”Trình biên dịch” là từ đầu tiên được sử dụng vào đầu những năm 1950 bởi Grace Murray Hopper.Các bước cho hệ thống xử lý ngôn ngữ là: Bộ tiền xử lý, Trình thông dịch, Trình biên dịch hợp ngữ, Trình liên kết / Trình tải.Các công cụ xây dựng trình biên dịch quan trọng là 1) Trình tạo máy quét, 2) Cú pháp, 3) Công cụ dịch theo hướng, 4) Trình phân tích cú pháp, 5) Trình tạo mã tự động.Nhiệm vụ chính của trình biên dịch là xác minh toàn bộ chương trình, do đó không có lỗi cú pháp hoặc ngữ nghĩa. Trình Biên Dịch

A. Dịch từ ngôn ngữ máy sang ngôn ngữ tự nhiên.

B. Dịch từ ngôn ngữ lập trình sang ngôn ngữ máy.

C. Dịch từ ngôn ngữ máy sang ngôn ngữ lập trình.

D. Dịch từ ngôn ngữ lập trình sang ngôn ngữ tự nhiên.

Đáp án đúng B.

Chương trình dịch dùng để dịch từ ngôn ngữ lập trình sang ngôn ngữ máy, chương trình dịch là chương trình đặc biệt có chức năng chuyển đổi chương trình được viết trên ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy tính cụ thể.

Giải thích nguyên nhân lựa chọn đáp án B:

Chương trình dịch hay phần mềm biên dịch là một chương tình máy tính làm công việc dịch một chuỗi các câu lệnh được viết bằng một ngôn ngữ lập trình, thành một chương trình tương đương nhưng ở dưới dạng một ngôn ngữ máy tính mới và thường là ngôn ngữ ở cấp thấp hơn như ngôn ngữ máy.

Những đặc điểm của chương trình dịch bao gồm:

– Tính chịu lỗi. Chương trình có thể chấp nhận một lỗi của đầu vào và đưa ra các gợi úc xử lý phù hợp. Chương trình dừng ngay ở lỗi đầu tiên không thể coi là tốt.

– Tính toàn vẹn là kết quả ở ngôn ngữ đích phải hoàn toàn tương đương với đầu vào viết ở ngôn ngữ nguồn.

– Tính trong suốt chương trình dịch phải rõ ràng về kết quả sau từ bước thực hiện, giúp người dùng có thể hiệu chỉnh và sửa lỗi nếu có sau từng bước thực hiện.

– Tính hiệu quả là chương trình dịch sử dụng không quá nhiều bộ nhớ và công suất tính toán, kết quả ở ngôn ngữ đích là đủ tốt.

Các giai đoạn chương trình dịch phải trải qua bao gồm:

– Giai đoạn phân tích nhằm phân tích chương trình nguồn về từ vựng và cú pháp.

– Giai đoạn tổng hợp nhằmg tạo ra chương trình đích gồm ba bước, bao gồm:

+ Sinh mã trung gian là chuyển chương trình nguồn về chương trình trung gian.

+ Tối ưu mã là chỉnh sửa, tối ưu chương trình trung gian.

+ Sinh mã là tạo chương trình đích từ chương trình trung gian đã tối ưu.

– Các trình biên dịch sẽ chuyển dịch mã nguồn viết trong một ngôn ngữ cấp cao thành mã đối tương hay ngôn ngữ máy mà có thể được thi hành trực tiếp bởi một máy tính hay bởi một máy ảo. Việc chuyển dịch từ một ngôn ngữ cấp thấp sang một ngôn ngữ cấp cao hơn cũng có thể xảy ra, quá trình này thường được hiểu như là bộ biên dịch ngược nếu nó có thể tái tạo lại một chương trình trong ngôn ngữ cấp cao.

– Tồn tại các trình biên dịch chuyển đổi từ ngôn ngữ cao này sang ngôn ngữ cao khác hay là chuyển đổi sang một ngôn ngữ mà nó cần để tiếp tục xử lý về sau những trình biên dịch như vậy được biết như là bộ biên dịch phân tầng. Các loại trình biên dịch cho kết quả là mã đối tượng thì một cách cơ bản bao gồm mã máy tăng cường thêm các thông tin về tên vị trí của các ngõ và các gọi ngoài.

– Một tập hợp của các tập tin đối tượng mà không hẳn được cung cấp từ cùng một trình biên dịch thì vẫn có thể được liên kết với nhau để tạo nên các chương trình khả thi cuối cùng cho một người dùng. Để làm được điều đó thì các tập tin đối tượng đó phải được thiết kế chung nhau về dạng thức.

Như vậy, Chương trình dịch dùng để làm gì? Là câu hỏi đã được chúng tôi trả lời chi tiết trong bài viết phía trên. Chúng tôi mong rằng nội dung trong bài viết sẽ giúp ích được quý bạn đọc.