Vấn đề xử lý lỗi ngữ nghĩa

Một phần của tài liệu ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG (Dùng cho tiết giảng) Học phần: CHƯƠNG TRÌNH DỊCH. Bộ môn: Khoa học máy tính (Trang 60 - 62)

- Băi tập nđng cao

5.5.Vấn đề xử lý lỗi ngữ nghĩa

 Thông bâo về lỗi  Mơ tả vă vị trí lỗi

 Khắc phục lỗi để tiếp tục kiểm tra phần chương trình nguồn cịn lại  Lỗi xuất hiện gđy ảnh hưởng đến câc luật kiểm tra lỗi: phải thiết kế

kiểu hệ thống để câc luật có thể đương đầu với câc lỗi kiểu

- Nội dung thảo luận

Câc lỗi ngữ nghĩa hay gặp khi lập trình trín Visual C++.

Bộ đặc tả kiểm tra kiểu của ngơn ngữ C++ trong mơi trường Turbo C++.

- u cầu SV chuẩn bị

Câc vấn đề khâc liín quan đến kiểm tra kiểu, đọc chương 5 tăi liệu 1, chương 5 tăi liệu 2, chương 4 tăi liệu 3.

- Băi tập bắt buộc

1. Xâc định kiểu cho câc cđu lệnh sau: a) var a : integer; a := a + 0.5; b) var a : integer; if a+5 then a := 0;

c) var a : integer; a := 0; while a<10 do a := a[0] - 1; 2. Văn phạm sau dùng để định danh danh sâch ký hiệu lă list:

P → D; E

D → D; D | id : T

T → char | integer | list of T E → literal | num | id | (L) L → E, L | E

Hêy viết câc luật ngữ nghĩa để xâc định kiểu cho E vă L. 3. Viết câc biểu thức kiểu cho câc kiểu dữ liệu sau đđy:

a) Một mảng của câc con trỏ có kích thước từ 1 đến 100, trỏ đến câc đối tượng lă câc số thực;

b) Mảng hai chiều của câc số ngun, hăng có kích thước từ 0 đến 9, cột từ -10 đến 10;

61

c) Câc hăm mă miền định nghĩa lă câc hăm với câc đối số nguyín, trị lă con trỏ trỏ đến câc số nguyín vă miền xâc định của nó lă câc mẫu tin chứa số nguyín vă câc ký tự.

- Băi tập nđng cao

4. Giả sử có một khai bâo C như sau: typedef struct {

int a, b; } CELL, *PCELL; CELL foo[100]; PCELL bar(x, y); int x;

CELL y {…}

Viết câc biểu thức kiểu cho câc kiểu dữ liệu foo vă bar.

5. Giả sử rằng kiểu của mỗi định danh lă một miền con của số ngun. Cho biểu thức với câc phĩp tôn +, -, *, div vă mod như trong Pascal. Hêy viết quy tắc kiểm tra kiểu để gân mỗi biểu thức con văo miền giâ trị mă nó sẽ nằm trong đó.

6. Giả sử rằng kiểu của mỗi định danh lă một miền con của số nguyín. Cho biểu thức với câc phĩp toân +, - , * , div vă mod như trong Pascal, hêy viết quy tắc kiểm tra kiểu để gân mỗi biểu thức con văo vùng miền con giâ trị mă nó sẽ nằm trong đó.

7. Căi đặt khối phđn tích ngữ nghĩa.

8. Thiết kế vă căi đặt bảng ký hiệu cho chương trình dịch.

- Tăi liệu tham khảo

1. Compilers : Principles, Technique and Tools. A.V. Aho, M. Lam, R.

Sethi, J.D.Ullman. - Addison -Wesley 2nd Edition, 2007. Chương 5. 2. Giâo trình chương trình dịch 2nd Edition. Phạm Hồng Nguyín. NXB (adsbygoogle = window.adsbygoogle || []).push({});

ĐHQG Hă Nội, 2009. Chương 5.

- Cđu hỏi ơn tập

1. Mục đích, nhiệm vụ của kiểm tra kiểu. 2. Sự tương đương giữa câc biểu thức kiểu.

3. Ĩp kiểu lă gì, câc trường hợp ĩp kiểu. Cho ví dụ minh họa.

Một phần của tài liệu ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG (Dùng cho tiết giảng) Học phần: CHƯƠNG TRÌNH DỊCH. Bộ môn: Khoa học máy tính (Trang 60 - 62)