giáo trình chương trình dịch tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực...
Trang 1Giáo trình Kiến trúc máy tính và Hệ
điều hành
1
CHƯƠNG TRÌNH DỊCH
Trang 2Giáo trình Kiến trúc máy tính và Hệ
Trang 3Giáo trình Kiến trúc máy tính và Hệ điều hành
3
Nội dung giáo trình
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG
CHƯƠNG 3 CÁC VẤN ĐỀ CƠ BẢN VỀ PHÂN TÍCH CÚ PHÁP CHƯƠNG 4 CÁC PHƯƠNG PHÁP PHÂN TÍCH CÚ PHÁP
Trang 4Giáo trình Kiến trúc máy tính và Hệ điều hành
4
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
1 Các khái niệm cơ bản
2 Đặc trưng của ngôn ngữ lập trình (NNLT) bậc cao
3 Các qui tắc từ vựng và cú pháp
4 Các chức năng của một trình biên dịch
Chương 2
Trang 5Giáo trình Kiến trúc máy tính và Hệ điều hành
5
1.1 Sự phát triển của ngôn ngữ lập trình
1.2 Khái niệm chương trình dịch
1.3 Phân loại chương trình dịch
1.4 Các ứng dụng khác của kỹ thuật dịch
Chương 2
Trang 6Giáo trình Kiến trúc máy tính và Hệ điều hành
6
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
1.1 Sự phát triển của ngôn ngữ lập trình
NNLT bậc cao (Higher _level language)
Trang 7Giáo trình Kiến trúc máy tính và Hệ điều hành
7
1.2 Khái niệm chương trình dịch
Chương trình dịch là chương trình dùng để dịch một chương trình (CT nguồn) viết trên NNLT nào đó (NN nguồn) sang một chương trình tương đương (CT đích) trên một NN khác (NN đích)
Chương 2
Trang 8Giáo trình Kiến trúc máy tính và Hệ điều hành
8
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
1.3 Phân loại chương trình dịch
CT nguồn Trình biên
dịch CT đích
Máy tính thực thi Kết quả
Thời gian dịch
Dữ liệu
Thời gian thực thi
Trang 9Giáo trình Kiến trúc máy tính và Hệ điều hành
9
1.3 Phân loại chương trình dịch
CT nguồn Trình thông dịch Kết quả
Dữ liệu
Trang 10Giáo trình Kiến trúc máy tính và Hệ điều hành
10
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
1.4 Các ứng dụng khác của kỹ thuật dịch
- Trong các hệ thống: phần giao tiếp giữa
người và máy thông qua các câu lệnh.
- Hệ thống xử lý NN tự nhiên: dịch thuật, tóm
tắt văn bản.
Chương 2
Trang 11Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 12Giáo trình Kiến trúc máy tính và Hệ điều hành
12
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
3.1 Bản chữ cái
- Gồm những ký hiệu được phép sử dụng để viết
chương trình
- Số lượng, ý nghĩa sử dụng của các ký tự trong bản
chữ cái của các NN là khác nhau.
- Nhìn chung bản chữ cái của các NNLT:
+ 52 chữ cái: A Z, az
+ 10 chữ số: 0 9
+ Các ký hiệu khác:*, /, +, -, …
Trang 13Giáo trình Kiến trúc máy tính và Hệ điều hành
13
3.2 Từ tố (Token)
- Từ tố là đơn vị nhỏ nhất có nghĩa
- Từ tố được xây dựng từ bản chữ cái
- Ví dụ: hằng, biến, từ khoá, các phép toán,…
Trang 14Giáo trình Kiến trúc máy tính và Hệ điều hành
14
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
3.3 Phạm trù cú pháp
- Phạm trù cú pháp là một dãy từ tố kết hợp
theo một qui luật nào đó
- Các cách biểu diễn cú pháp thông thường
+ BNF(Backus Naus Form):
<lệnhgán>::=<tên biến>:=<biểu thức>
Trang 15Giáo trình Kiến trúc máy tính và Hệ điều hành
- Mục tiêu của phạm trù cú pháp là việc định
nghĩa được khái niệm chương trình đến mức
độ tự có
Trang 16Giáo trình Kiến trúc máy tính và Hệ điều hành
16
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
3.4 Các qui tắc từ vựng thông dụng
tab(‘\t’), dấu sang dòng(‘\n’)
- Đối với liên kết tự do, có thể sử dụng nhiều
khoảng trống thay vì một khoảng trống
Trang 17Giáo trình Kiến trúc máy tính và Hệ điều hành
phép toán, tên biến và các phép toán
Ví dụ: x:=x+3*3;
Trang 18Giáo trình Kiến trúc máy tính và Hệ điều hành
18
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
- Xử lý lỗi
Trang 19Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 20Giáo trình Kiến trúc máy tính và Hệ điều hành
20
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
4.2 Phân tích cú pháp
qui tắc nào đó.
- Phân tích xem các Token có tuân theo qui tắc
cú pháp của ngôn ngữ không
Trang 21Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 22Giáo trình Kiến trúc máy tính và Hệ điều hành
22
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
4.4 Xử lý lỗi
- CT nguồn vẫn có thể xảy ra lỗi
- Phần xử lý lỗi sẽ thông báo lỗi cho NSD
- Lỗi ở phần nào báo ở phần đó
Trang 23Giáo trình Kiến trúc máy tính và Hệ điều hành
23
4.4 Xử lý lỗi
- Có các loại lỗi:
• Lỗi từ vựng (trong Pascal sử dụng biến mà
chưa khai báo)
• Lỗi cú pháp ((a+5; lỗi thiếu dấu ‘)’ )
• Lỗi ngữ nghĩa (x=3.5; nhưng khai báo int x)
• Lỗi thực hiện (phép chia 0)
Trang 24Giáo trình Kiến trúc máy tính và Hệ điều hành
24
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
4.5 sinh mã trung gian
nguồn có 2 đặc điểm:
Trang 25Giáo trình Kiến trúc máy tính và Hệ điều hành
25
4.6 Tối ưu mã trung gian
- Bỏ bớt các lệnh thừa.
- Cải tiến lại mã trung gian để khi sinh mã đối
tượng thì thời gian thực thi mã đối tượng sẽ ngắn hơn
Trang 26Giáo trình Kiến trúc máy tính và Hệ điều hành
26
CHƯƠNG 1 NHẬP MÔN CHƯƠNG TRÌNH DỊCH
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
4.7 Sinh mã đối tượng
- Giai đoạn cuối của trình biên dịch.
một ngôn ngữ khác ngôn ngữ nguồn.
Các pha (giai đoạn) có thể thực hiện song hành
Một vài pha có thể ghép lại thành lượt (chuyến)
trung gian của CT nguồn, sau đó ghi kết quả để lượt sau đọc và xử lý tiếp.
Trang 27Giáo trình Kiến trúc máy tính và Hệ điều hành
Bộ PTCP n1 id1 := n2
* n3
id2
Num4 id3
+
Bộ PTNN n1 id1 := n2
* n3
id2
Intoreal(6) id3
+
Bộ sinh mã trung gian
Temp1:=intoreal(6) Temp2:=id2+id3 Temp3:=temp2*temp1 Id1:=temp3
Bộ tối ưu sinh mã trung gian
Temp1:=id2+id3 Id1:=temp1*6.0
Bộ sinh mã đối tượng
MovF id2, R1 MovF id3, R2 Add R2, R1 Mult #6.0, R1 MovF R1, id1
Trang 28Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 29Giáo trình Kiến trúc máy tính và Hệ điều hành
• Sử dụng một lượt cho việc phân tích từ
vựng dãy các token phân tích cú pháp.
với phân tích cú pháp Một lần chỉ phát hiện 1 token gọi là từ tố tiếp đến
Trang 30Giáo trình Kiến trúc máy tính và Hệ điều hành
30
CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
thành token đến khi gặp ký tự không thể kết hợp thành token.
- Loại bỏ các ký tự trống và chú thích.
(văn bản, mã phân loại) vừa phát hiện cho
bộ phân tích cú pháp.
- Phát hiện lỗi.
Trang 31Giáo trình Kiến trúc máy tính và Hệ điều hành
từ vựng
Gửi token Bộ
phân tích
cú pháp Yêu cầu token
Bảng danh biểu
Trang 32Giáo trình Kiến trúc máy tính và Hệ điều hành
32
CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
3.1 Định nghĩa: M(Σ, Q, δ, q0, F)
Σ: bộ chữ vào Q: tập hữu hạn các trạng thái q0 ∈ Q: trạng thái đầu
Trang 33Giáo trình Kiến trúc máy tính và Hệ điều hành
33
3.2 Biểu diễn các hàm chuyển trạng thái
- Chỉ số hàng: trạng thái
- Chỉ số cột: ký hiệu vào
- Giá trị tại hàng q, cột a là trạng thái p,
sao cho δ(q,a)=p
Trang 34Giáo trình Kiến trúc máy tính và Hệ điều hành
34
CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
3.2 Biểu diễn các hàm chuyển trạng thái
Trang 35Giáo trình Kiến trúc máy tính và Hệ điều hành
35
3.2 Biểu diễn các hàm chuyển trạng thái
- mỗi trạng thái q∈Q được đặt trong các vòng
tròn.
- Trạng thái bắt đầu q0 có thêm dấu ‘>’ ở đầu.
- Trạng thái kết thúc q∈F được đặt trong vòng
tròn kép.
- Các cung nối từ trạng thái q sang trạng thái p
có mang các nhãn a∈Σ, có nghĩa δ(q,a)=p
Trang 36Giáo trình Kiến trúc máy tính và Hệ điều hành
36
CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
3.2 Biểu diễn các hàm chuyển trạng thái
Trang 37Giáo trình Kiến trúc máy tính và Hệ điều hành
37
3.2 Biểu diễn các hàm chuyển trạng thái
vẽ có ưu điểm hơn Trong hình vẽ ta xác
định đầy đủ tất cả các thành phần của
Otomat.
trạng thái, tập các trạng thái, bộ chữ vào nhưng không phân biệt được trạng thái bắt đầu và trạng thái kết thúc.
Trang 38Giáo trình Kiến trúc máy tính và Hệ điều hành
38
CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
3.3 Hoạt động của Otomat
- Đọc các ký hiệu của xâu vào từ trái sang phải,
bắt đầu từ trạng thái q0.
trạng thái theo δ Có thể đọc xong hay không đọc xong xâu vào.
Trang 39Giáo trình Kiến trúc máy tính và Hệ điều hành
39
3.3 Hoạt động của Otomat
- Đọc xong xâu vào đến một trạng thái p∈F
thì xâu vào được đoán nhận (xâu đúng).
- Đọc xong xâu vào mà rơi vào trạng thái p∉F
thì xâu vào không được đoán nhận.
không xác định) thì xâu vào không được
đoán nhận.
Trang 40Giáo trình Kiến trúc máy tính và Hệ điều hành
40
CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
Trang 41Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 42Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 43Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 44Giáo trình Kiến trúc máy tính và Hệ điều hành
12
14 khác *
1 5
+ 1
6
=
1 8
+
khác
1 7
1 9
*
2 0
=
2 2
khác
2 1
2 3
* -
ss không bằng gán
cộng bằng
tăng 1 cộng trừ bằng giảm 1 trừ
nhân bằng nhân
chia bằng
chia chia lấy dư
Ss bằng
Trang 45Giáo trình Kiến trúc máy tính và Hệ điều hành
45
const int ERROR_STATE=100;
typedef int state;// kieu cac trang thai
typedef unsigned char *attri;// kieu cua thuoc tinh
typedef unsigned char *token; //kieu cua tu to
unsigned char *x;//xau vao x
unsigned int i=0;// vi tri cua ky tu doc trong xau x
unsigned char readchar(unsigned char *x, unsigned int i){
//tra ve ky tu tiep theo if(i<strlen(x)) return (*(x+i));
else return ('\0'); }
Trang 46Giáo trình Kiến trúc máy tính và Hệ điều hành
case 4: strcpy(ch,"so sanh lon hon"); break;
case 6: strcpy(ch,"so sanh nho hon bang");break;
case 7: strcpy(ch,"dich trai"); break;
case 8: strcpy(ch,"so sanh nho hon"); break;
Trang 47Giáo trình Kiến trúc máy tính và Hệ điều hành
case 13: strcpy(ch,"so sanh bang"); break;
case 14: strcpy(ch,"gan"); break;
case 17: strcpy(ch,"cong bang"); break;
case 18: strcpy(ch,"tang 1"); break;
case 19: strcpy(ch,"cong"); break;
case 21: strcpy(ch,"tru bang"); break;
case 22: strcpy(ch,"giam 1"); break;
case 23: strcpy(ch,"tru"); break;
Trang 48Giáo trình Kiến trúc máy tính và Hệ điều hành
case 25: strcpy(ch,"nhan bang"); break;
case 26: strcpy(ch,"nhan"); break;
case 28: strcpy(ch,"chia bang"); break;
case 29: strcpy(ch,"chia"); break;
case 30: strcpy(ch,"chia lay du"); break;
default: strcpy(ch,"token ko duoc doan nhan(tt
ko dung \0");
} return ch;
}
Trang 49Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 50Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 51Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 52Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 53Giáo trình Kiến trúc máy tính và Hệ điều hành
}
Trang 54Giáo trình Kiến trúc máy tính và Hệ điều hành
void catchar_in_token (unsigned char c, token tk){
// ghep them ky tu c vao cho tu to tk
unsigned char *tam;
Trang 55Giáo trình Kiến trúc máy tính và Hệ điều hành
55
token search_token (unsigned int *i, attri tt){
// tra ve tri tu vung cua tu to bdau tu vi tri i, thuoc tinh tra ve cho tt
Trang 56Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 57Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 58Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 59Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 60Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 61Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 62Giáo trình Kiến trúc máy tính và Hệ điều hành
else if (nostar_end_state(s)) {
catchar_in_token(c,tk);
*i=*i+1; stop=1;
strcpy(tt,attribute(s));}
Trang 63Giáo trình Kiến trúc máy tính và Hệ điều hành
}
Trang 64Giáo trình Kiến trúc máy tính và Hệ điều hành
void save_token_and_attribute(token tk,attri a){
//luu tru tk,a vao danh sach
Trang 65Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 66Giáo trình Kiến trúc máy tính và Hệ điều hành
66
CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
4.2 Phương pháp điều khiển bằng bảng
- Otomat phải chung một trạng thái bắt đầu
- Tạo bảng table biểu diễn hàm chuyển trạng thái
• Chỉ số hàng: trạng thái q ∈Q
• Chỉ số cột: ký hiệu vào a ∈∑
• Table[q][a]=p với p ∈Q và δ(q,a)=p
Trang 67Giáo trình Kiến trúc máy tính và Hệ điều hành
12
14 khác *
6
=
1 8
+
khác
1 7
1 9
*
2 0
=
2 2
khác
2 1
2 3
* -
ss không bằng gán
cộng bằng
tăng 1 cộng trừ bằng giảm 1 trừ
nhân bằng nhân
chia bằng chia chia lấy dư
Trang 68Giáo trình Kiến trúc máy tính và Hệ điều hành
68
CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
4.1 Phương pháp điều khiển bằng bảng
Trạng thái 100:Ko có hàm chuyển trạng thái
> = < !
2 100 100 100 100
Trang 69Giáo trình Kiến trúc máy tính và Hệ điều hành
69
4 int table[][MAX]; Lập bộ phân tích từ vựng
token search_token (unsigned int *i, attri tt){
// tra ve tri tu vung cua tu to bdau tu vi tri i, thuoc tinh tra ve cho tt
token tk; unsigned char c;
Trang 70Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 71Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 72Giáo trình Kiến trúc máy tính và Hệ điều hành
72
CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
void create_table(int table[][MAX]){
// tao bang chuyen trang thai table
Trang 73Giáo trình Kiến trúc máy tính và Hệ điều hành
73
Gồm các token và các thuộc tính của token
Chỉ số Token Trị từ vựng Các thuộc tính khác 01
Trang 74Giáo trình Kiến trúc máy tính và Hệ điều hành
74
CHƯƠNG 2 PHÂN TÍCH TỪ VỰNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
- Tổ chức tuần tự: mảng, danh sách liên kết,
danh sách móc nối
Trang 75Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 76Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 77Giáo trình Kiến trúc máy tính và Hệ điều hành
- Độ dài xâu là số các ký hiệu trong xâu
Ký hiệu: độ dài xâu x là |x|
Trang 78Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 79Giáo trình Kiến trúc máy tính và Hệ điều hành
79
1 Một số vấn đề về ngôn ngữ
• Ghép tiếp: cho 2 xâu x,y Ghép tiếp của x, y
là x.y hay xy là 1 xâu viết x trước, rồi đến y sau chứ không có dấu cách.
y=0110 xy=010110
Trang 80Giáo trình Kiến trúc máy tính và Hệ điều hành
• Đảo ngược xâu x (x r ): xâu được viết theo thứ
tự ngược lại của xâu x
Trang 81Giáo trình Kiến trúc máy tính và Hệ điều hành
• Vì ngôn ngữ là tập hợp nên có các phép toán
tập hợp: ∩(giao), ∪(hợp), -(hiệu, bù)
Trang 82Giáo trình Kiến trúc máy tính và Hệ điều hành
x.x=x 2 ; x.x.x=x 3 ; x 0 =ε; x i =x i-1 x
L 0 ={ε}; L i =L i-1 L
- L*=L 0∪L 1∪L 2∪…∪; L + =L 1∪L 2∪…∪
Trang 83Giáo trình Kiến trúc máy tính và Hệ điều hành
83
1 Một số vấn đề về ngôn ngữ
1.3 Biểu diễn ngôn ngữ
- Phương pháp liệt kê: ngôn ngữ có số xâu là
hữu hạn và có thể xác định được.
Ví dụ: ngôn ngữ là các số tự nhiên nhỏ hơn
20 và lớn hơn 12
L={13, 14, 15, 16, 17, 18, 19}
Trang 84Giáo trình Kiến trúc máy tính và Hệ điều hành
1.3 Biểu diễn ngôn ngữ
Trang 85Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 86Giáo trình Kiến trúc máy tính và Hệ điều hành
Trang 87Giáo trình Kiến trúc máy tính và Hệ điều hành
87
2 Văn phạm phi ngữ cảnh
- Ký hiệu chưa kết thúc được viết bằng chữ in
- Ký hiệu chưa kết thúc nằm bên trái của sản
xuất đầu tiên là ký hiệu bắt đầu.
Trang 88Giáo trình Kiến trúc máy tính và Hệ điều hành
− α gọi là xâu khi α ∈ Σ*
− α gọi là dạng câu khi α∈(Σ∪Δ) *
Trang 89Giáo trình Kiến trúc máy tính và Hệ điều hành
- Quan hệ suy dẫn trực tiếp: từ A áp dụng
một sản xuất sinh được α
Ký hiệu: A⇒α với A∈Δ và α∈(Σ∪Δ) *
Trang 90Giáo trình Kiến trúc máy tính và Hệ điều hành
nhiều sản xuất mới sinh được α
Ký hiệu: A ⇒+ α với A∈Δ và α∈(Σ∪Δ)*
- Độ dài suy dẫn: số lần áp dụng các sản xuất
- Độ dài của suy dẫn trực tiếp bằng 1
Trang 91Giáo trình Kiến trúc máy tính và Hệ điều hành
91
2 Văn phạm phi ngữ cảnh
2.3 Các khái niệm
- Nếu luôn luôn thay thế ký hiệu chưa kết thúc
ở bên trái nhất gọi là suy dẫn trái Tương tự
ta có suy dẫn phải