Trình biên dịch là một chương trình đọc một chương trình được viết bằng một ngôn ngữ (ngôn ngữ nguồn) và dịch nó sang một chương trình tương đương khác bằng ngôn ngữ khác (ngôn ngữ đích), chủ yếu là ngôn ngữ máy.
Có các giai đoạn khác nhau của trình biên dịch thông qua đó mã ngôn ngữ nguồn của bạn được quét theo từng dòng. Có một bảng biểu tượng theo dõi tất cả các Từ khóa được quét trong mã ngôn ngữ nguồn.
Giai đoạn 1: Trình phân tích từ vựng - đọc tất cả các ký tự trong chương trình nguồn và hình thành sự phân tách logic của các mã thông báo (int, char, float, if-other, for, while, v.v.)
Giai đoạn 2: Phân tích cú pháp - phân tích cấu trúc của dòng mã thông báo. Phân tích cú pháp phân cấp các biểu thức bao gồm hậu tố / tiền tố, v.v. (a = b + c * d)
Giai đoạn 3: Trình phân tích ngữ nghĩa - Kiểm tra loại mã thông báo (số nguyên thành số thực, số dư, v.v.) và nhiều thứ như ưu tiên toán tử, v.v.
Giai đoạn 4: Trình tạo mã trung gian - a = b + c * de (temp1 = c * d, temp2 = temp1 + b, temp3 = temp2-e)
Giai đoạn 5: Tối ưu hóa mã - Phân tích khác nhau (luồng điều khiển, luồng dữ liệu, biến đổi)
tạo ra: Mã dự phòng, propogation hằng, mã chết một phần, biểu thức con chung, mã bất biến vòng lặp
Giai đoạn 6: Tạo mã - Tạo mã mục tiêu (Chủ yếu là ngôn ngữ hội) đưa các giá trị vào các thanh ghi
Tất cả các giai đoạn này không có gì ngoài các chương trình được viết tốt và có thể có N số lỗ hổng trong đó ..