Sự khác biệt giữa Pha và Vượt qua trong Trình biên dịch

Sự khác biệt giữa Pha và Vượt qua trong Trình biên dịch
Sự khác biệt giữa Pha và Vượt qua trong Trình biên dịch

Video: Sự khác biệt giữa Pha và Vượt qua trong Trình biên dịch

Video: Sự khác biệt giữa Pha và Vượt qua trong Trình biên dịch
Video: Hai loại khác biệt - Ngữ Văn 6 - Kết nối tri thức - Cô Trương San (DỄ HIỂU NHẤT) 2024, Tháng bảy
Anonim

Pha vs Vượt qua trong Trình biê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 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ữ. Vì vậy, nói chung các trình biên dịch có thể được xem như những người dịch chuyển từ ngôn ngữ này sang ngôn ngữ khác. Pass và Phase là hai thuật ngữ thường được sử dụng với các trình biên dịch. Số lần truyền của một trình biên dịch là số lần nó đi qua nguồn (hoặc một số dạng biểu diễn của nó). Một trình biên dịch được chia nhỏ thành các phần để thuận tiện cho việc xây dựng. Giai đoạn thường được sử dụng để gọi một phần độc lập duy nhất của trình biên dịch.

Pass trong Compiler là gì?

Một cách tiêu chuẩn để phân loại trình biên dịch là theo số lần “vượt qua”. Thông thường, biên dịch là một quá trình tương đối tốn nhiều tài nguyên và ban đầu máy tính không có đủ bộ nhớ để chứa một chương trình hoàn thành công việc như vậy. Do hạn chế này của tài nguyên phần cứng trong các máy tính đầu tiên, các trình biên dịch được chia nhỏ thành các chương trình con nhỏ hơn thực hiện công việc một phần của nó bằng cách xem qua mã nguồn (thực hiện "chuyển" qua nguồn hoặc một số dạng khác của nó) và thực hiện phân tích, các phép biến đổi và các tác vụ dịch riêng biệt. Vì vậy, tùy thuộc vào phân loại này, trình biên dịch được xác định là trình biên dịch một lần hoặc nhiều lần.

Như tên cho thấy, trình biên dịch một lần sẽ biên dịch trong một lần chuyển. Việc viết trình biên dịch một lần dễ dàng hơn và chúng cũng hoạt động nhanh hơn so với trình biên dịch nhiều đường. Do đó, ngay cả tại thời điểm bạn bị giới hạn về tài nguyên, các ngôn ngữ đã được thiết kế để chúng có thể được biên dịch trong một lần chuyển (ví dụ: Pascal). Mặt khác, một trình biên dịch đa đường thông thường được tạo thành từ một số giai đoạn chính. Giai đoạn đầu tiên là máy quét (còn được gọi là máy phân tích từ vựng). Máy quét đọc chương trình và chuyển đổi nó thành một chuỗi mã thông báo. Giai đoạn thứ hai là trình phân tích cú pháp. Nó chuyển đổi chuỗi mã thông báo thành cây phân tích cú pháp (hoặc cây cú pháp trừu tượng), nó nắm bắt cấu trúc cú pháp của chương trình. Giai đoạn tiếp theo là diễn giải ngữ nghĩa của cấu trúc cú pháp. Các giai đoạn tối ưu hóa mã và giai đoạn tạo mã cuối cùng tuân theo điều này.

Giai đoạn trong Trình biên dịch là gì?

Giai đoạn thuật ngữ thường xuất hiện khi bạn nói về xây dựng trình biên dịch. Ban đầu, các trình biên dịch là từng phần đơn giản của phần mềm nguyên khối duy nhất được viết bởi một người để biên dịch một ngôn ngữ đơn giản. Nhưng khi mã nguồn của ngôn ngữ được dịch trở nên phức tạp và lớn, trình biên dịch đã được chia thành nhiều giai đoạn (tương đối độc lập). Ưu điểm của việc có các giai đoạn khác nhau là sự phát triển của trình biên dịch có thể được phân phối giữa một nhóm các nhà phát triển. Hơn nữa, nó cải thiện tính mô-đun và tái sử dụng bằng cách cho phép các pha được thay thế bằng những pha cải tiến hoặc các pha bổ sung (chẳng hạn như tối ưu hóa hơn nữa) được thêm vào trình biên dịch. Quy trình phân chia việc biên dịch thành các giai đoạn đã được PQCC (Dự án Trình biên dịch Chất lượng Sản xuất) tại Đại học Carnegie Melon đưa ra. Họ giới thiệu các thuật ngữ front end, middle end và back end. Hầu hết các trình biên dịch có ít nhất hai giai đoạn. Nhưng thông thường, giao diện người dùng và giao diện người dùng bao gồm các giai đoạn này.

Sự khác biệt giữa Pha và Vượt qua trong Trình biên dịch là gì?

Pha và Vượt qua là hai thuật ngữ được sử dụng trong lĩnh vực trình biên dịch. Một lần vượt qua là một lần trình biên dịch chuyển qua (xem qua) mã nguồn hoặc một số biểu diễn khác của nó. Thông thường, hầu hết các trình biên dịch có ít nhất hai giai đoạn được gọi là giao diện người dùng và kết thúc phía sau, trong khi chúng có thể là một lần hoặc nhiều lần. Giai đoạn được sử dụng để phân loại trình biên dịch theo cấu trúc, trong khi pass được sử dụng để phân loại trình biên dịch theo cách chúng hoạt động.

Đề xuất: