You are on page 1of 233

CHƯƠNG 1: MỞ ĐẦU

I • Giới thiệu môn học chương trình dịch

II • Chương trình dịch


III • Phát triển dự án chương trình dịch
• Vì sao chúng ta cần học môn chương trình dịch
IV
I. GIỚI THIỆU MÔN CHƯƠNG TRÌNH DỊCH
I. GIỚI THIỆU MÔN CHƯƠNG TRÌNH DỊCH
II. CHƯƠNG TRÌNH DỊCH (COMPILER)
II. CHƯƠNG TRÌNH DỊCH (COMPILER)
II. CHƯƠNG TRÌNH DỊCH (COMPILER)
VD:
II. CHƯƠNG TRÌNH DỊCH (COMPILER)
III. PHÁT TRIỂN DỰ ÁN CHƯƠNG TRÌNH DỊCH
III. PHÁT TRIỂN DỰ ÁN CHƯƠNG TRÌNH DỊCH
III. PHÁT TRIỂN DỰ ÁN CHƯƠNG TRÌNH DỊCH
III. PHÁT TRIỂN DỰ ÁN CHƯƠNG TRÌNH DỊCH
III. PHÁT TRIỂN DỰ ÁN CHƯƠNG TRÌNH DỊCH
III. PHÁT TRIỂN DỰ ÁN CHƯƠNG TRÌNH DỊCH
III. PHÁT TRIỂN DỰ ÁN CHƯƠNG TRÌNH DỊCH
III. PHÁT TRIỂN DỰ ÁN CHƯƠNG TRÌNH DỊCH
III. PHÁT TRIỂN DỰ ÁN CHƯƠNG TRÌNH DỊCH
III. PHÁT TRIỂN DỰ ÁN CHƯƠNG TRÌNH DỊCH
CHƯƠNG 2: SƠ LƯỢC VỀ NGÔN NGỮ
HÌNH THỨC

A
• Khái niệm chung về ngôn ngữ

B
• Văn phạm chính quy và Otomat hữu hạn

• Văn phạm phi ngữ cảnh và Otomat đẩy


C xuống
A. KHÁI NIỆM CHUNG VỀ NGÔN NGỮ
1. Ký hiệu, bộ chữ cái, xâu, ngôn ngữ
2. Biểu diễn ngôn ngữ
A. KHÁI NIỆM CHUNG VỀ NGÔN NGỮ
3. Văn phạm
A. KHÁI NIỆM CHUNG VỀ NGÔN NGỮ
4. Phân loại Chomsky
A. KHÁI NIỆM CHUNG VỀ NGÔN NGỮ
4. Phân loại Chomsky
A. KHÁI NIỆM CHUNG VỀ NGÔN NGỮ
4. Phân loại Chomsky
B. VĂN PHẠM CHÍNH QUY VÀ OTOMAT HỮU HẠN
I. Văn phạm chính quy
B. VĂN PHẠM CHÍNH QUY VÀ OTOMAT HỮU HẠN
I. Văn phạm chính quy
B. VĂN PHẠM CHÍNH QUY VÀ OTOMAT HỮU HẠN
I. Văn phạm chính quy
B. VĂN PHẠM CHÍNH QUY VÀ OTOMAT HỮU HẠN
II. Otomat hữu hạn  VPCQ

Click to add text


C. VĂN PHẠM PHI NGỮ CẢNH VÀ OTOMAT ĐẨY XUỐNG
I. Văn phạm phi ngữ cảnh
C. VĂN PHẠM PHI NGỮ CẢNH VÀ OTOMAT ĐẨY XUỐNG
I. Văn phạm phi ngữ cảnh
C. VĂN PHẠM PHI NGỮ CẢNH VÀ OTOMAT ĐẨY XUỐNG
I. Văn phạm phi ngữ cảnh
C. VĂN PHẠM PHI NGỮ CẢNH VÀ OTOMAT ĐẨY XUỐNG
I. Văn phạm phi ngữ cảnh
C. VĂN PHẠM PHI NGỮ CẢNH VÀ OTOMAT ĐẨY XUỐNG
I. Văn phạm phi ngữ cảnh
C. VĂN PHẠM PHI NGỮ CẢNH VÀ OTOMAT ĐẨY XUỐNG
I. Văn phạm phi ngữ cảnh
C. VĂN PHẠM PHI NGỮ CẢNH VÀ OTOMAT ĐẨY XUỐNG
I. Văn phạm phi ngữ cảnh
C. VĂN PHẠM PHI NGỮ CẢNH VÀ OTOMAT ĐẨY XUỐNG
II. Bài toán phân tích ngôn ngữ đối với lớp VPPNC
C. VĂN PHẠM PHI NGỮ CẢNH VÀ OTOMAT ĐẨY XUỐNG
III. Otomat đẩy xuống VPPNC
Bài tập: Viết sản xuất cho các câu lệnh: while, if, for và biểu thức của
ngôn ngữ C. Giả sử biểu thức chỉ có các phép toán: + - * / và cặp dấu mở
đóng ngoặc, các toán hạng chỉ có thể là: a, b, c, d. Sau đó tìm suy dẫn trái
nhất để sinh ra sâu: ((a+b)*c+d)/(a-d) và dựng cây suy dẫn tương ứng.
VD: Sản xuất cho câu lệnh while là:
<câu_lệnh_while> → while (<biểu_thức>) <khối câu lệnh>

Về nhà đọc thêm từ trang 36


CHƯƠNG 3: PHÂN TÍCH TỪ VỰNG

I • Mục đích và nhiệm vụ

II • Xác định từ tố

III • Xác định lỗi trong phần phân tích từ vựng


• Các bước để xây dựng một bộ phân tích từ vựng
IV
I. MỤC ĐÍCH VÀ NHIỆM VỤ
I. MỤC ĐÍCH VÀ NHIỆM VỤ
I. MỤC ĐÍCH VÀ NHIỆM VỤ
I. MỤC ĐÍCH VÀ NHIỆM VỤ
I. MỤC ĐÍCH VÀ NHIỆM VỤ
I. MỤC ĐÍCH VÀ NHIỆM VỤ
I. MỤC ĐÍCH VÀ NHIỆM VỤ
I. MỤC ĐÍCH VÀ NHIỆM VỤ

Từ vị  Từ vựng  Ký hiệu (kết thúc hoặc không kết thúc)


I. MỤC ĐÍCH VÀ NHIỆM VỤ
I. MỤC ĐÍCH VÀ NHIỆM VỤ
I. MỤC ĐÍCH VÀ NHIỆM VỤ

Như vậy, bộ phân tích từ vựng phải cho biết các thông tin về
từ tố cùng với các thuộc tính cần thiết. Từ tố sẽ tác động đến
việc điều khiển của bộ phân tích cú pháp, thuộc tính lại ảnh
hưởng đến việc sinh mã
I. MỤC ĐÍCH VÀ NHIỆM VỤ
II. XÁC ĐỊNH TỪ TỐ 1. Biểu diễn từ tố
II. XÁC ĐỊNH TỪ TỐ
1. Biểu diễn từ tố
II. XÁC ĐỊNH TỪ TỐ 1. Biểu diễn từ tố
II. XÁC ĐỊNH TỪ TỐ 1. Biểu diễn từ tố
II. XÁC ĐỊNH TỪ TỐ 1. Biểu diễn từ tố
II. XÁC ĐỊNH TỪ TỐ 1. Biểu diễn từ tố
II. XÁC ĐỊNH TỪ TỐ
2. Viết chương trình cho đồ thị chuyển
II. XÁC ĐỊNH TỪ TỐ
2. Viết chương trình cho đồ thị chuyển
II. XÁC ĐỊNH TỪ TỐ
2. Viết chương trình cho đồ thị chuyển

Đồ thị chuyển
tổng hợp
II. XÁC ĐỊNH TỪ TỐ
2. Viết chương trình cho đồ thị chuyển
II. XÁC ĐỊNH TỪ TỐ
2. Viết chương trình cho đồ thị chuyển
II. XÁC ĐỊNH TỪ TỐ
2. Viết chương trình cho đồ thị chuyển
II. XÁC ĐỊNH TỪ TỐ
2. Viết chương trình cho đồ thị chuyển
III. XÁC ĐỊNH LỖI TRONG PHÂN TÍCH TỪ VỰNG
III. XÁC ĐỊNH LỖI TRONG PHÂN TÍCH TỪ VỰNG
IV. CÁC BƯỚC ĐỂ XÂY DỰNG MỘT BỘ PHÂN TÍCH TỪ VỰNG

Về nhà đọc trước Ngôn ngữ nguồn SLANG – từ trang 171


CHƯƠNG 4: PHÂN TÍCH CÚ PHÁP VÀ CÁC
PHƯƠNG PHÁP PHÂN TÍCH CƠ BẢN

I • Mục đích

II • Hoạt động của bộ phân tích


I. MỤC ĐÍCH
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
1. Văn phạm
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
1. Văn phạm
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
2. Mô tả văn phạm
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II.suy

BT: HOẠT
dẫncây
Dựng ĐỘNG
tráisuy
nhất:
dẫn CỦA
số sản BỘ PHÂN
S=>aSbS=>aaSbS=>aacbS=>aacbc
có ghi xuất lựa TÍCH
chọn với xâu: aacbacbc
1 2 3
3. Các phương
1
pháp phân tích
1
1 aacbc
1
2
3
aacbc
1

1 1
1
1

1 2 2 3

3 3 3 3
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II.suy

BT: HOẠT
dẫn
Viết quáthu ĐỘNG
gọn
trình phảiCỦA
bên tích
phân nhất là:BỘ
Bottom vớiPHÂN TÍCH
S<=AB<=abB<=ababa
up xâu: abaab

3. Các phương pháp phân tích


II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
3. Các phương pháp phân tích
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
4. Phát hiện lỗi
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
4. Phát hiện lỗi
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
4. Phát hiện lỗi
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
4. Phát hiện lỗi
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
4. Phát hiện lỗi
II. HOẠT ĐỘNG CỦA BỘ PHÂN TÍCH
4. Phát hiện lỗi
CHƯƠNG 5: CÁC PHƯƠNG PHÁP PHÂN
TÍCH HIỆU QUẢ
CHƯƠNG 5: CÁC PHƯƠNG PHÁP PHÂN
TÍCH HIỆU QUẢ
CHƯƠNG 5: CÁC PHƯƠNG PHÁP PHÂN
TÍCH HIỆU QUẢ
CHƯƠNG 5: CÁC PHƯƠNG PHÁP PHÂN
TÍCH HIỆU QUẢ
CHƯƠNG 5: CÁC PHƯƠNG PHÁP PHÂN
TÍCH HIỆU QUẢ
CHƯƠNG 5: CÁC PHƯƠNG PHÁP PHÂN
TÍCH HIỆU QUẢ
I. PHÂN TÍCH LL
I. PHÂN TÍCH LL
VD: Bảng phân tích chỉ đường từ Hà Nội đến Tp HCM
I. PHÂN TÍCH LL
I. PHÂN TÍCH LL ab$
S => AA => aABA => aBA => aBbA=> abA => ab
VD: Với VP có tập SX P={S → AA | Bc, A → aAB |  , B → Bb | }
Cần tìm các sản xuất để suy dẫn ra xâu: ab
1. Đầu tiên từ S phải chọn SX nào có thể suy dẫn ra xâu có ký hiệu a ở đầu
Nhận thấy SX được chọn là: S → AA Vì có a  FIRST(AA)
2. Tiếp theo từ A phải chọn SX nào có thể suy dẫn ra xâu có ký hiệu a ở đầu
Nhận thấy SX được chọn là: A → aAB Vì có a  FIRST(aAB)
3. Tiếp theo nhận thấy A không thể suy dẫn ra b, trong khi sau A là B, mà B =>* b,
nên sau A có b. Bởi vậy, chỉ cần cho A về  là tương đương A suy dẫn ra b
Từ đó SX được chọn là: A →  Vì có bFOLLOW(A)
Chú ý: - FIRST dùng để chọn các SX không suy ra xâu rỗng 
- FOLLOW dùng để chọn các SX suy ra xâu rỗng 
I. PHÂN TÍCH LL

VD: Giả sử α=AB, A → aA| cB |  , B→ db | 


Khi đó có : - AB=> aAB
- AB=> cBB
- AB=> B => db
- AB=> B =>  Từ đó có FIRST(α) = {a, c, d, }
I. PHÂN TÍCH LL
I. PHÂN TÍCH LL
BT: Lập FIRST(X)
VD:Tính với tậpcho
bảng tính FIRST SX các
P={E với
biến SX
VP cóFtập
TaFaT, aF, T  TbF}
P={S → AA | Bc, A → aAB |  , B → Bb | }
Cuối cùng đưa ra
kết quả FIRST(X)

Tính F1(X) dựa trên F0(X) theo quy tắc: Nếu có X→ YZ


F0(X) được tính thì đưa F0(Y) vào F1(X), nếu   F0(Y) thì: nếu Z là ký
trực tiếp từ các hiệu kết thúc thì đưa Z vào F1(X), ngược lại thì đưa
SX có ký hiệu đầu F0(Z) vào F1(X). Chú ý: chỉ đưa xâu  vào F1(X) nếu 
của vế phải là ký  F0(Y) và   F0(Z).
hiệu kết thúc, Tương tự tính Tính F2(X) dựa vào F1(X), F3(X) dựa vào
hoặc vế phải là  F2(X), … . Khi thấy 2 cột liên tiếp giống nhau thì dừng.
I. PHÂN TÍCH LL

VD: Giả sử có: S → CaD, D→ bAC | Ab, C→dbB | cD | 


Khi đó có : - S=> CaD=> CabAC=>CabAdbB
- S=> CaD=> CabAC=>CabAcD
- S=> CaD=> CabAC=>CabA
- S=> CaD=> CaAb
Từ đó có FOLLOW(A) = {b, c, d, $}
I. PHÂN TÍCH LL

Vì: S=>* γBcβ=> γαAcβ


VD: Lập bảng
BT: Tính với tậpcho
tính FOLLOW
FOLLOW(X) SXcác biếnvới
P={E tậpSX
VP có F
TaFaT, aF, T  TbF}
P={S → AA | Bc, A → aAB |  , B → Bb | }
Bảng tính FOLLOW
Bảng tính FIRST
I. PHÂN TÍCH LL
BT: tính 
BảngP={E VD: Lập Fbảng
TaFaT,
FIRST  aF, T LL
phân tích với VPxâu:
TbF}, có tập SX: P={S → AA | Bc,
babaa
Tìm được suy dẫn trái nhất: S => AA=> aABA=> aBA=>AaBbA=> → aAB |abA=>
, B →ab
Bb | }

Bảng tính FOLLOW

Lập bảng phân tích


I. PHÂN TÍCH LL
I. PHÂN TÍCH LL
I. PHÂN TÍCH LL
CHƯƠNG 2: NGÔN NGỮ NGUỒN VÀ
MÁY TÍNH ẢO
CHƯƠNG 2: NGÔN NGỮ NGUỒN VÀ
MÁY TÍNH ẢO
A. NGÔN NGỮ NGUỒN SLANG
A. NGÔN NGỮ NGUỒN SLANG
I. Mô tả ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
I. Mô tả ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
I. Mô tả ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghĩa ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
A. NGÔN NGỮ NGUỒN SLANG
II. Định nghia ngôn ngữ SLANG
A. NGÔN NGỮ NGUỒN SLANG
Bài 1: Viết chương trình nhập vào 1 số từ bàn phím cho đến khi nào nhập
số 0, nếu số nhập vào là số chẵn thì cộng vào tổng chẵn, ngược lại cộng vào
tổng lẻ. In 2 tổng ra màn hình.
Bài 2: Viết chương trình tìm USCLN(a, b). với a, b được nhập vào từ bàn
phím. In USCLN ra màn hình.
Về nhà đọc tham khảo
CHƯƠNG 3: PHÂN TÍCH TỪ VỰNG

I • Mục đích, nhiệm vụ


II • Đồ thị dịch chuyển
III • Thực hiện
IV • Hoàn thiện chương trình phân tích từ vựng
V • Kiểm tra, thử nghiệm chương trình
II. ĐỒ THỊ CHUYỂN
III. THỰC HIỆN
III. THỰC HIỆN
III. THỰC HIỆN
III. THỰC HIỆN File SLC1.H
III. THỰC HIỆN File SLC1.C
III. THỰC HIỆN File SLC1.C
III. THỰC HIỆN File SLC1.C
III. THỰC HIỆN File SLC1.C
III. THỰC HIỆN File SLC1.C
III. THỰC HIỆN File SLC1.C
III. THỰC HIỆN File SLC1.C
III. THỰC HIỆN File SLC1.C
III. THỰC HIỆN File SLC1.C
III. THỰC HIỆN File SLC1.C
Bài 1. Cần sửa lại chương trình ở những vị trí nào? khi thêm câu lệnh FOR với cú pháp:
câulệnh_for → for_token ident_token become_token bieuthuc to_token bieuthuc do_token
phầncâulệnh
od_token VD:
FOR n:= 1 TO 10 DO
WRITE(n);
OD

Bài 2: Nêu ý nghĩa việc khai báo mảng chuỗi và các câu lệnh của hàm main()
Về nhà đọc trước Chương 4, phần Lý thuyết:
CHƯƠNG 4: PHÂN TÍCH CÚ PHÁP

I • Mục đích, nhiệm vụ

II • Phương pháp phân tích đệ quy trên xuống

III • Bộ phân tích cú pháp cho SLANG

IV • Thử nghiệm chương trình


II. PHƯƠNG PHÁP PHÂN TÍCH ĐỆ QUY TRÊN XUỐNG
S => AA => aABA ab$

P={S → AA | Bc, A → aAB |  , B → Bb | }


II. PHƯƠNG PHÁP PHÂN TÍCH ĐỆ QUY TRÊN XUỐNG
II. PHƯƠNG PHÁP PHÂN TÍCH ĐỆ QUY TRÊN XUỐNG
II. PHƯƠNG PHÁP PHÂN TÍCH ĐỆ QUY TRÊN XUỐNG
II. PHƯƠNG PHÁP PHÂN TÍCH ĐỆ QUY TRÊN XUỐNG
II. PHƯƠNG PHÁP PHÂN TÍCH ĐỆ QUY TRÊN XUỐNG
II. PHƯƠNG PHÁP PHÂN TÍCH ĐỆ QUY TRÊN XUỐNG
II. PHƯƠNG PHÁP PHÂN TÍCH ĐỆ QUY TRÊN XUỐNG
II. PHƯƠNG PHÁP PHÂN TÍCH ĐỆ QUY TRÊN XUỐNG

S => AA => aABA ab$

P={S → AA | Bc, A → aAB |  , B → Bb | }


II. PHƯƠNG PHÁP PHÂN TÍCH ĐỆ QUY TRÊN XUỐNG

S => AA => aABA ab$


P={S → AA | Bc, A → aAB |  , B → Bb | }
II. PHƯƠNG PHÁP PHÂN TÍCH ĐỆ QUY TRÊN XUỐNG
Bài tập:

Bài 1. Tìm hiểu kỹ các hàm trong SLC2.C


Bài 2. Sửa lại SLC2.H và SLC2.C để phân tích cú pháp được câu lệnh For với cú pháp:
câulệnh_for → for_token ident_token become_token bieuthuc to_token bieuthuc do_token
phầncâulệnh
od_token
Sau đó thử chạy với VD:
Begin
Var int i, n;
n:=20;
For i:=1 to 2*n Do
Write(i);
od
End.
VD: Chương trình nguồn
VIDU21.PRO được phân tích
thành 49 luật cú pháp, tạo
thành cây phân tích ẩn sau:
VD: Chương trình nguồn
VIDU21.PRO được phân tích
thành 49luật cú pháp, tạo thành
cây phân tích ẩn sau:
VD: Chương trình nguồn
VIDU21.PRO được phân tích
thành 49luật cú pháp, tạo thành
cây phân tích ẩn sau:
CHƯƠNG 5: BẢNG KÝ HIỆU VÀ
PHÂN TÍCH NGỮ NGHĨA

• Mục đích, nhiệm vụ


I
• Thiết kế bảng ký hiệu và phân tích ngữ nghĩa
II
• Hoàn thiện và thử nghiệm chương trình
III
I. MỤC ĐÍCH, NHIỆM VỤ
I. MỤC ĐÍCH, NHIỆM VỤ
I. MỤC ĐÍCH, NHIỆM VỤ
I. MỤC ĐÍCH, NHIỆM VỤ
I. MỤC ĐÍCH, NHIỆM VỤ
I. MỤC ĐÍCH, NHIỆM VỤ
I. MỤC ĐÍCH, NHIỆM VỤ
II. THIẾT KẾ BẢNG KÝ HIỆU VÀ PHÂN TÍCH NGỮ NGHĨA
II. THIẾT KẾ BẢNG KÝ HIỆU VÀ PHÂN TÍCH NGỮ NGHĨA
II. THIẾT KẾ BẢNG KÝ HIỆU VÀ PHÂN TÍCH NGỮ NGHĨA
II. THIẾT KẾ BẢNG KÝ HIỆU VÀ PHÂN TÍCH NGỮ NGHĨA
II. THIẾT KẾ BẢNG KÝ HIỆU VÀ PHÂN TÍCH NGỮ NGHĨA
p bảng ký hiệu theo cách
ịnh danh và danh sách
phân tích đến dòng 6.

n=20, b=30;
OC T
BEGIN
VAR INT n, d, x;
...
END;
II. THIẾT KẾ BẢNG KÝ HIỆU VÀ PHÂN TÍCH NGỮ NGHĨA
II. THIẾT KẾ BẢNG KÝ HIỆU VÀ PHÂN TÍCH NGỮ NGHĨA
Các hàm và thủ tục làm việc với bảng ký hiệu
II. THIẾT KẾ BẢNG KÝ HIỆU VÀ PHÂN TÍCH NGỮ NGHĨA
II. THIẾT KẾ BẢNG KÝ HIỆU VÀ PHÂN TÍCH NGỮ NGHĨA
II. THIẾT KẾ BẢNG KÝ HIỆU VÀ PHÂN TÍCH NGỮ NGHĨA
II. THIẾT KẾ BẢNG KÝ HIỆU VÀ PHÂN TÍCH NGỮ NGHĨA
III. HOÀN THIỆN VÀ THỬ NGHIỆM CHƯƠNG TRÌNH
III. HOÀN THIỆN VÀ THỬ NGHIỆM CHƯƠNG TRÌNH
III. HOÀN THIỆN VÀ THỬ NGHIỆM CHƯƠNG TRÌNH
CHƯƠNG 7: XỬ LÝ LỖI

I • Mục đích, nhiệm vụ

II • Xử lý lỗi trong phần phân tích từ vựng

III • Xử lý lỗi trong phần phân tích cú pháp

IV • Xử lý lỗi trong phần phân tích ngữ nghĩa


I. MỤC ĐÍCH, NHIỆM VỤ
II. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH TỪ VỰNG
II. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH TỪ VỰNG

Mở rộng thứ nhất

Mở rộng thứ hai


II. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH TỪ VỰNG
III. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH CÚ PHÁP
III. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH CÚ PHÁP
III. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH CÚ PHÁP
III. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH CÚ PHÁP
III. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH CÚ PHÁP
III. XỬ LÝ LỖI TRONG PHẦN
Tập các từ tố sẽ
được triển khai tiếp
PHÂN TÍCH
absolute_token,
CÚ PHÁP
{ident_token, num_token, open_token,
negate_token}

BT: Hãy viết các thủ tục cú


pháp và tính các tập đồng bộ Tập các từ tố sẽ được triển khai trong phần
còn lại của sản xuất đang được phân tích
tương ứng khi phân tích đến:
n+b {then_token, else_token,
fi_token, ident_token,
BEGIN
Tập các từ tố sẽ được triển khai trong phần if_token, while_token,
INT n=20, b=30; còn lại của tất cả các sản xuất đang làm call_token, read_token,
PROC T việc dở (trừ tập đồng bộ cục bộ) write_token}
BEGIN
x:=n + b; {separator_token, od_token,
END; end_token, period_token}

...
END.
III. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH CÚ PHÁP
III. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH CÚ PHÁP
III. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH CÚ PHÁP
III. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH CÚ PHÁP
III. XỬ LÝ LỖI TRONG PHẦN PHÂN TÍCH CÚ PHÁP

You might also like