21/1/2010 Các giai đoạn trình biên dịch Bài Các giai đoạn ủ chương trình dịch Phân tích từ vựng (Lexical Analysis Scanner) Lần lượt xem xét ký tự chương trình nguồn, phân hâ nhóm hó chúng hú thành hà h hữ đơn đ vịị cú pháp gọi từ tố (token) Phân tích cú pháp (Syntax Analysis) Dãy token phân tích từ vựng đưa kiểm tra xem có cú pháp không? Các thành phần trình biên dịch Các giai đoạn trình biên dịch Phân tích ngữ nghĩa (Semantic Analysis) phân tích ý nghĩa lệnh ngôn ngữ nguồn g Sinh mã trung gian (Intermediate Code Generation)thường mã địa Mã trung gian không phụ thuộc máy nên dễ tối ưu 21/1/2010 Các giai đoạn trình biên dịch Pha 1:Phân tích từ vựng Sinh mã đích: Sinh lệnh máy để thực thao tác Tối ưu mã: Thực với mã trung gian mã đích nhằm làm cho chương trình hiệu Bộ từ vựng:Chương trình làm nhiệm vụ phân tích từ vựng Các công g việc từ vựng g Nhóm ký tự thành từ tố Từ tố :đơn vị cú pháp xử lý trình dịch thực thể chia nhỏ Nhóm từ tố theo loại Một số loại từ tố Quá trình dịch ộ câu lệnh 21/1/2010 Pha 2: Phân tích cú pháp Ví dụ: câu lệnh a = b + c Trình biên dịch kiểm tra xem từ tố mà từ vựng nhận biết có kết hợp thành g câu lệnh ệ g cú p pháp p không Do phân tích cú pháp đảm nhận Pha 2: Phân tích cú pháp 11 Văn phạm, ngôn ngữ, BNF,sơ đồ cú pháp Đầu phân tích cú pháp: Cây phân tích cú pháp (nếu có) Thông báo lỗi ngược lại Cú pháp Cấu trúc văn phạm ngôn ngữ Bộ phân tích cú pháp cần đưa phân tích cho câu ngôn ngữ (chương trình) BNF : Dạng chuẩn để mô tả văn phạm ngôn ngữ Sơ đồ cú pháp:cách mô tả văn phạm trực quan dạng đồ thị định hướng Việc xây dựng phân tích cú pháp chứng tỏ chương trình cú pháp 10 12 21/1/2010 Văn phạm, ngôn ngữ, BNF,sơ đồ cú pháp Các luật BNF văn phạm hình thức sử dụng loại ký hiệu vế phải Ký hiệu kết thúc : Từ tố ố ủ ngôn ô ngữ ữ xuất vế trái Không Ký hiệu không kết thúc Ký hiệu trung gian văn phạm để mô tả cấu trúc ngôn ngữ Cần xuất vế trái luật Bao cặp Bằng cách áp dụng liên tục luật mô tả văn phạm Nếu PTCP chuyển thành công từ xâu vào thành ký hiệu đầu xâu vào cú pháp Ngược lại, câu xem xét không cú pháp 13 Văn phạm, ngôn ngữ, BNF,sơ đồ cú pháp Khái niệm kỹ thuật phân tích cú pháp Ký hiệu đầu : 15 Khái niệm kỹ thuật phân tích cú pháp Vấn đề quan trọng xây dựng trình biên dịch xây dựng văn phạm Bao gồm đầy đủ cấu trúc chương trình Không thể tạo nên luật khác Ký hiệu không kết thúc mức cao Xuất gốc cú pháp 14 16 21/1/2010 Khái niệm kỹ thuật phân tích cú pháp Pha 4: Sinh mã trung gian Văn Chương trình với mã nguồn chuyển sang chương trình tương đương g g ngôn g ngữ g trung gg gian sinh mã trung gian Mã trung gian mã máy độc lập tương tự với tập lệnh máy phạm phải không nhập nhằng Nếu ế văn phạm nhập nhằng, ằ xây dựng nhiều cho câu đưa phân tích 17 19 Ưu điểm mã trung gian Pha 3: Phân tích ngữ nghĩa Duyệt cú pháp chương trình để xem cấu trúc ngữ nghĩa hĩ có ó đú khô không Chương trình cú pháp ngữ nghĩa sinh mã 18 Thuận lợi cần thay đổi cách biểu diễn chương trình đích Có thể tối ưu hóa mã độc ộ lập ập với máy đích cho dạng biểu ể diễn trung gian Giảm thời gian thực thi chương trình đích mã trung gian tối ưu 20 21/1/2010 Các vấn đề thiết kế sinh mã đích Ngôn ngữ trung gian Được người thiết kế trình biên dịch định, là: Cây cú pháp Ký pháp Ba Lan sau (hậu tố) Mã địa … 21 Input Output Lựa chọn câu lệnh Cấp phát ghi Máy đích 23 Pha 5: Sinh mã đích Vào: biểu diễn trung gian chương trình nguồn Ra: R chương h trình t ì h đích đí h Mã Assembly Mã mô máy đích ảo 22 .. .21 /1 /20 10 Các giai đoạn trình biên dịch Pha 1:Phân tích từ vựng Sinh mã đích: Sinh lệnh máy để thực thao tác Tối ưu mã: Thực với mã trung gian mã đích nhằm làm cho chương trình hiệu... gian Giảm thời gian thực thi chương trình đích mã trung gian tối ưu 20 21 /1 /20 10 Các vấn đề thiết kế sinh mã đích Ngôn ngữ trung gian Được người thiết kế trình biên dịch định, là: Cây cú... nghĩa Duyệt cú pháp chương trình để xem cấu trúc ngữ nghĩa hĩ có ó đú khô không Chương trình cú pháp ngữ nghĩa sinh mã 18 Thuận lợi cần thay đổi cách biểu diễn chương trình đích Có thể tối