- Phục hồi lỗi một cách nhanh chóng để xác định lỗi tiếp theo Không làm chậm tiến trình của một chơng trình đúng.
4. CÁC BƯỚC ĐỂ XÂY DỰNG BỘ PHÂN TÍCH TỪ VỰNG.
Cỏc bước tuần tự nờn tiến hành để xõy dựng được một bộ phõn tớch từ vựng tốt, hoạt động chớnh xỏc và dễ cải tiến, bảo hành, bảo trỡ.
1) Xác định cỏc luật từ tố, cỏc luật này được mụ tả bằng lời.
2) Vẽ đồ thị chuyển cho từng mẫu một, trước đú cú thể mụ tả bằng biểu thức chớnh qui để tiện theo dừi và chỉnh sửa, và dễ dàng cho việc dựng đồ thị chuyển.
3) Kết hợp cỏc luật này thành một đồ thị chuyển duy nhất. 4) Chuyển đồ thị chuyển thành bảng.
5) Xõy dựng chương trỡnh.
6) Bổ sung thờm phần bỏo lỗi để thành bộ phõn tớch từ vựng hoàn chỉnh.
Bài tọ̃p
1. Phõn tớch cỏc chương trỡnh pascal và C sau thành cỏc từ tố và thuộc tớnh tương ứng.
a) pascal:
Function max(i,j:integer): Integer; {Trả lại số lon nhất trong 2 số nguyờn i, j }
Begin
If i>j then max:=i; Else max:=j; End;
B) C:
Int max(int i, int j)
/* Trả lại số lon nhất trong 2 số nguyờn i, j*/
{return i>j?i:j;}
Hóy cho biết cú bao nhiờu từ tố được đưa ra và chia thành bao nhiờu loại?
2. Phõn tớch cỏc chương trỡnh pascal và c sau thành cỏc từ tố và thuộc tớnh tương ứng. a) pascal var i,j; begin for i= 0 to 100 do j=i; write(‘i=’, ‘j:=’,j); end; B) C: Int i,j: Main(void {
for (i=0; i=100;i++)
}
3. Mụ tả cỏc ngụn ngữ chỉ định bởi cỏc biểu thức chớnh quy sau: a. 0(0|1)*0 b.((ε|0)1*)*
4. Viết biểu thức chớnh quy cho: tờn, số nguyờn, số thực, char, string… trong pascal. Xõy dựng đồ thị chuyển cho chỳng. Sau đú, kết hợp chỳng thành đồ thị chuyển duy nhất.
5. Dựng đồ thị chuyển cho cỏc mụ tả dưới đõy.
a. Tất cả cỏc xõu chữ cỏi cú 6 nguyờn õm a, e, i, o, u, y theo thứ tự. Vớ dụ: “abeiptowwrungfhy”
b. tất cả cỏc xõu số khụng cú một số nào bị lặp. c. tất cả cỏc xõu số cú ớt nhất một số nào bị lặp. d. tất cả cỏc xõu gồm 0,1, khụng chứa xõu con 011.
Bài tọ̃p thực hành
Bài 1: Xõy dựng bộ phõn tớch từ vựng cho ngụn ngữ pascal chuẩn. Bài 2: Xõy dựng bộ phõn tớch từ vựng cho ngụn ngữ C chuẩn.
CHƯƠNG 3