Slide Chương trình dịch (UNIT2) - GV Nguyễn Thị Thu Hương

LI
lienhejb
0 downloads
6
0

Document content

Page 1

21/1/2010 Các giai đoạn của trình biên dịch Bài 2. „ Phân tích từ vựng (Lexical Analysis - Các giai đoạn chính Scanner) Lần lượt xem xét từng ký tự của chương trình củủa chương trình dịch nguồồn, phâhân nhóhóm chúhúng thà hhành nhhữững đđơn vịị cú pháp gọi là từ tố (token) „ Phân tích cú pháp (Syntax Analysis) Dãy token do bộ phân tích từ vựng đưa ra được kiểm tra xem có đúng cú pháp không? 1 3 Các thành phần chính của trình biên dịch Các giai đoạn của trình biên dịch „ Phân tích ngữ nghĩa (Semantic Analysis) phân tích ý nghĩa từng lệnh của ngôn ngữ ngguồn. „ Sinh mã trung gian (Intermediate Code Generation)thường là mã 3 địa chỉ. Mã trung gian không phụ thuộc máy nên dễ tối ưu. 2 4 goupee.com fb.com/groups/goupee 1

Page 2

21/1/2010 Các giai đoạn của trình biên dịch Pha 1:Phân tích từ vựng „ Sinh mã đích: Sinh ra các lệnh máy để „ Bộ từ vựng:Chương trình làm nhiệm vụ thực hiện thao tác. phân tích từ vựng TTốốii ưưu mã: Thu mã: Thựựcc hihiệệnn vvớớii mã trung gianmã trung gian „ Các côngg việc của bộ từ vựngg „„ và cả mã đích nhằm làm cho chương trình Nhóm các ký tự thành từ tố hiệu quả hơn. Từ tố :đơn vị cú pháp được xử lý trong quá trình dịch như một thực thể không thể chia nhỏ hơn nữa Nhóm các từ tố theo loại. 5 7 Một số loại từ tố Quá trình dịch mộột câu lệnh 6 8 goupee.com fb.com/groups/goupee 2

Page 3

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 những từ tố mà bộ từ vựng nhận biết được có kết hợp thành nhữngg câu lệệnh đúngg cú pphápp không „ Do bộ phân tích cú pháp đảm nhận 9 11 Pha 2: Phân tích cú pháp Văn phạm, ngôn ngữ, BNF,sơ đồ cú pháp „ Đầu ra của bộ phân tích cú pháp: „ Cú pháp …Cây phân tích cú pháp (nếu có) …Cấu trúc văn phạm của một ngôn ngữ ……Thông báo lThông báo lỗỗi ni nếếu ngu ngượược lc lạạii „„ BBộộ phânphân tích cú pháp ctích cú pháp cầầnn đưđưaa ra phân tíchra phân tích „ Việc xây dựng được cây phân tích cú cho mỗi câu của ngôn ngữ (chương trình) pháp chứng tỏ chương trình đúng về cú „ BNF : Dạng chuẩn để mô tả văn phạm của pháp ngôn ngữ „ Sơ đồ cú pháp:cách mô tả văn phạm trực quan dưới dạng đồ thị định hướng 10 12 goupee.com fb.com/groups/goupee 3

Page 4

21/1/2010 Văn phạm, ngôn ngữ, BNF,sơ đồ cú pháp Khái niệm và kỹ thuật phân tích cú pháp „ Các luật của BNF cũng như văn phạm Bằng cách áp dụng liên tục các luật mô tả hình thức sử dụng 2 loại ký hiệu ở vế phải „ văn phạm „ Ký hiệu kết thúc : TTừ ốừ tố củủa ngôôn ngữữ „„ NNếếu bu bộộ PTCPPTCP chuychuyểển thành công tn thành công từừ xâuxâu … Không xuất hiện ở vế trái vào thành ký hiệu đầu thì xâu vào đúng cú … Ký hiệu không kết thúc pháp „ …Ký hiệu trung gian của văn phạm để mô tả „ Ngược lại, câu được xem xét không đúng cấu trúc ngôn ngữ cú pháp …Cần xuất hiện ở vế trái của ít nhất một luật …Bao trong cặp <> 13 15 Văn phạm, ngôn ngữ, BNF,sơ đồ cú pháp Khái niệm và kỹ thuật phân tích cú pháp „ Ký hiệu đầu : „ Vấn đề quan trọng nhất khi xây dựng …Ký hiệu không kết thúc ở mức cao nhất trình biên dịch là xây dựng một văn ……XuXuấất hit hiệệnn ởở ggốốcc cây cú phápcây cú pháp phphạạmm „ Bao gồm đầy đủ các cấu trúc của một chương trình „ Không thể tạo nên một luật nào khác 14 16 goupee.com fb.com/groups/goupee 4

Page 5

21/1/2010 Khái niệm và kỹ thuật phân tích cú pháp Pha 4: Sinh mã trung gian „ Văn phạm phải không nhập nhằng „ Chương trình với mã nguồn được chuyển sang chương trình tương đươngg trongg nggôn nggữ trung gg gian „ Nếếu văn phạm nhập nhằằng, xây dựng bằng bộ sinh mã trung gian. được nhiều hơn 1 cây cho mỗi câu được đưa ra phân tích Mã trung gian là mã máy độc lập „ tương tự với tập lệnh trong máy. 17 19 Ưu điểm của mã trung gian Pha 3: Phân tích ngữ nghĩa „Duyệt cây cú pháp của chương 1.Thuận lợi khi cần thay đổi cách biểu trình để xem mọi cấu trúc ngữ diễn chương trình đích. 2.Có thể tối ưu hóa mã độộc lậậpp với nghhĩĩa cóó đđúúng khôkhông máy đích cho dạng biểểu diễn trung Chương trình đúng cả về cú pháp gian. „ và ngữ nghĩa mới sinh mã được 3.Giảm thời gian thực thi chương trình đích vì mã trung gian có thể được tối ưu 18 20 goupee.com fb.com/groups/goupee 5

Page 6

21/1/2010 Ngôn ngữ trung gian Các vấn đề thiết kế bộ sinh mã đích „ Được người thiết kế trình biên dịch „ Input quyết định, có thể là: „ Output Cây cú pháp „ Lựa chọn câu lệnh † †Ký pháp Ba Lan sau (hậu tố) „ Cấp phát thanh ghi †Mã 3 địa chỉ … Máy đích „ 21 23 Pha 5: Sinh mã đích „ Vào: biểu diễn trung gian của chương trình nguồn „ RRa: chhương tt ì hrình đđí hích … Mã Assembly … Mã mô phỏng trên máy đích ảo 22 goupee.com fb.com/groups/goupee 6

Showing the first 6 pages. Download the document to see it all.

Comments (0)

Sign in to join the discussion

No comments yet. Be the first!