Ngôn ngữ hữu hạn biểu diễn bằng cách liệt kê tất cả các chuỗi thuộc vào chúng... Văn phạm và sự phân lớp văn phạm Văn phạm là một tập các quy tắc về cấu tạo từ và các quy tắc ∆: tập hợp
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
- ∽∽∽ - ∽∽∽
BÀI GIẢNG
LÝ THUYẾT NGÔN NGỮ
Giảng viên: ThS ThS Nguyễn Nguyễn Thị Thị Uyên Uyên
Khoa Công nghệ thông tin
Trang 22/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 4/17
I Tập hợp (Set)
• Tập hợp là tập các đối tượng không có sự lặp lại.
• Mỗi đối tượng trong tập hợp được gọi là phần tử
D = { Mon, Tues, Wed, Thurs, Fri, Sat, Sun }
Các phần tử được viết cách nhau bởi dấu phẩy và
đặt trong cặp dấu { và }
Thứ tự liệt kê các phần tử là không quan trọng
Viết x ∈ A nghĩa là x thuộc A,
Viết x ∉ A nghĩa là x không thuộc A
Một trường hợp đặc biệt của tập hợp là tập hợp rỗng
(empty set) Tập hợp này không có chứa bất kỳ phần
tử nào, ký hiệu bởi ∅ hoặc { }.
Trang 32/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 7/17
Tập con (subset)
Tập hợp A là tập hợp con () của tập hợp B khi mọi
phần tử của A đều thuộc B.
Tập hợp tất cả các tập con của tập A được gọi là tập
lũy thừa (power set) của A, ký hiệu: 2A.
Ví dụ : Giả sử A = { 1, 2, 3 }
Thì 2A= { ∅, 1, 2, 3, (1,2), (2,3), (3,1), (1,2,3) }
Trang 42/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 10/17
Trang 52/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 13/17
Tính chất
Quan hệ tương đương
Trang 62/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 16/17
Đồ thị có hướng
Là đồ thị mà có sự phân biệt đỉnh nào là đỉnh đầu,
đỉnh nào là đỉnh cuối trong một cạnh(cung)
- Các nút có dẫn ra nút con sau nó được gọi là nút
trung gian hay nút trong
- Các nút không dẫn ra nút con gọi là nút lá
3.Thứ tự duyệt trên cây là từ trái sang phải
Ví dụ
Cây minh họa cấu trúc cú pháp của một câu đơn trong ngôn ngữ tiếng
Việt "An là sinh viên giỏi"
Trang 7II Biểu diễn ngôn ngữ
III Văn phạm và sự phân loại văn phạm
1.1 Các khái niệm cơ bản về ngôn ngữ
a Bảng chữ cái(alphabet) là một tập hữu hạn hoặc vô hạn các
Trang 82/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 4/20
1.1 Các khái niệm cơ bản về ngôn ngữ
d Chuỗi rỗng (ký hiệuε) là chuỗi không có ký hiệu nào, vì vậy
|ε | = 0
e Chuỗi con chuỗi v được gọi là chuỗi con của w nếu v được tạo
bởi các ký hiệu liền kề nhau trong chuỗi w
Ví dụ : Chuỗi 10 là chuỗi con của chuỗi 010001
f Tiền tố của một chuỗi là một chuỗi con bất kỳ nằm ở đầu chuỗi
g Hậu tố của một chuỗi là chuỗi con nằm ở cuối chuỗi.
Ví dụ: Chuỗi abc có các tiền tố là a, ab, abc và các hậu tố là c,
bc, abc
1.1 Các khái niệm cơ bản về ngôn ngữ
h Chuỗi nối kết (ghép) từ hai chuỗi con là một chuỗi tạo
được bằng cách viết chuỗi thứ nhất sau đó là chuỗi thứ hai
(không có khoảng trống ở giữa)
Vd: Nối kết chuỗi Long và Int là chuỗi LongInt.
ta có εw = wε = w với mọi chuỗi w.
i Chuỗi đảo ngược của chuỗi w, ký hiệu wRlà chuỗi w được
viết theo thứ tự ngược lại
chuỗi của một bộ chữ cáiΣ nào đó
b Tập hợp chứa chuỗi rỗng (ký hiệu {ε}) và tập hợp rỗng ∅
cũng được coi là ngôn ngữ
c TậpΣΣ* = Tập hợp tất cả các chuỗi (từ) kể cả chuỗi rỗng trên
Trang 92/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 7/20
• 1 Cho Σ = {a, c,} Hãy mô tả tập Σ* ?
• 2 Cho Σ = {a, c,} Hãy mô tả tập Σ+ ?
1.3 Các phép toán trên ngôn ngữ
L1= {ab, bc}; L2= {12, 34, ab}
a Phép hợp L1∪ L2= {ab, bc, 12, 34}
b Phép giao L1∩ L2= {ab}
c Phép phần bù của một ngôn ngữ L trên bộ chữ cái
Σ được định nghĩa như sau :
1.3 Các phép toán trên ngôn ngữ
d Phép nối kết của hai ngôn ngữ L1trên bộ chữ cáiΣ1và L2
trên bộ chữ cáiΣ2 được định nghĩa bởi :
L1L2= {w1w2| w1∈ L1và w2∈ L2} trên bộ chữ cáiΣ1∪ Σ2
Ví dụ: L 1 = {a,b}; L 2 = {c,d} thì L 1 L 2 = {ac,ad,bc,bd}
Ta viết L0= {ε} ; L1= L ; L2= LL
hay tổng quát Li= LLi - 1với i > 0 L0={ε}, với mọi ngôn ngữ L
e Phép bao đóng của ngôn ngữ L ký hiệu L*
L* = L0 ∪ L1 ∪ L2 ∪ L3 ∪ L4…
Trang 102/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 10/20
1.3 Các phép toán trên ngôn ngữ
f Phép bao đóng dương: L+= L1 ∪ L2∪ L3∪ L4 …
Ví dụ
Cho ngôn ngữ L = { a, ba } thì
L2= { aa, aba, baa, baba}
L3= { aaa, aaba, abaa, ababa, baaa, baaba, babaa, bababa}
L*= { ε, a, ba, aa, aba, baa, baba, aaa, aaba, abaa, ababa, baaa,
baaba, babaa, bababa … }
• Cho ngôn ngữ L = {a, b, c}, tính L3??
II Biểu diễn ngôn ngữ
Một ngôn ngữ L trên một bộ chữ cái Σ là một tập con củaΣ
tậpΣΣ*.
Ngôn ngữ hữu hạn biểu diễn bằng cách liệt kê tất cả các
chuỗi thuộc vào chúng
Ví dụ: L 1 = { ε}, L 2 = { a, ba, aaba, bbbbb }
Ngôn ngữ vô hạn không thể liệt kê tất cả các chuỗi thuộc
ngôn ngữ được
Trong trường hợp đơn giảnthì ngôn ngữ được biểu diễn
thông qua một phát biểu hay một tân từ
Ví dụ: L 3 = { a i i là một số nguyên tố }
L 4 = { a i b j i ≥ j ≥ 0 }
Trang 112/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 13/20
Văn phạm là cơ chế cho phép sản sinh ra mọi
chuỗi của ngôn ngữ.
Automata là cơ chế cho phép đoán nhận một chuỗi
bất kỳ có thuộc ngôn ngữ hay không.
Cách biểu diễn ngôn ngữ tổng quát
III Văn phạm và sự phân lớp văn phạm
Văn phạm là một tập các quy tắc về cấu tạo từ và các quy tắc
∆: tập hợp các biến (variables) hay các ký hiệu chưa kết thúc
(non terminal) (vớiΣ ∩ ∆ = ∅)
P :tập hữu hạn các quy tắc ngữ pháp được gọi là các luật sinh
(production), mỗi luật sinh được biểu diễn dưới dạngα → β,
vớiα, β là các chuỗi ∈ (Σ ∪ ∆)*
S⊂ ∆ : ký hiệu chưa kết thúc dùng làm ký hiệu bắt đầu (start)
• Các chữ cái Latinh viết hoa (A, B, C, ) thường dùng để
biểu diễn các ký hiệu chưa kết thúc trong tập biến ∆.
• Các chữ cái Latinh viết thường (a, b, c, ) thường dùng để
biểu diễn các ký hiệu kết thúc thuộc tập Σ.
Trang 122/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 16/20
• P:{S->abA, A->aA|a, B->bB|Bc, AB->abC}
Dẫn xuất
Từ văn phạm, để sinh ra được các chuỗi (từ), ta định nghĩa
khái niệm “dẫn xuất” như sau :
Nếuααα →α→→ ββββ là một luật sinh thì γγγγ αααα δδδδ ⇒⇒γγγγ ββββ δδδδ gọi là một dẫn
xuất trực tiếp, có nghĩa là áp dụng luật sinhαααα →→→ ββββ vào chuỗi γγγγ αααα
δδδδ để sinh ra chuỗi γγγγ ββββ δδδδ
Nếu các chuỗiαααα1 ,αααα2 , ,ααααm∈∈ ΣΣΣ*vàαααα1⇒αααα2 ,αααα2⇒αααα3 , ,
α
αα
αm-1⇒ααααmthì ta nóiαmcó thể được dẫn ra từα1thông qua chuỗi
dẫn xuấtαααα1⇒αααα2 ,αααα2⇒αααα3 , ,ααααm-1⇒ααααmhayα1dẫn xuất (gián
tiếp) raαm, viết tắt là αααα1⇒*ααααm
• Bai 1: Cho văn phạm với tập luật sinh P được xác
định như sau:
• 1 Xây dựng thành phần Σ và ∆ của văn phạm.
• 2 Đưa ra dẫn xuất của văn phạm để sinh chuỗi
abbbab.
Trang 132/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 19/20
Ngôn ngữ của văn phạm
Ngôn ngữ của văn phạm G = (Σ, ∆, P, S) là tập hợp các
chuỗi ký hiệu kết thúc w∈ Σ* được sinh ra từ ký hiệu bắt đầu
S của văn phạm bởi các luật sinh thuộc tập P, ký hiệu là L(G) :
L (G) = {w w ∈ Σ* và S ⇒* w}
Hai văn phạm tương đương là hai văn phạm cùng sinh ra
một ngôn ngữ:
G1tương đương G2 ⇔ L (G1) = L (G2)
Phân loại văn phạm theo Chomsky
1 Văn phạm loại 0 (Unrestricted Grammar)
Là văn phạm không cần thỏa mãn ràng buộc nào trên tập các
Trang 142/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 22/20
• Cho văn phạm với tập luật sinh: P = {S → a | aA; A
→ aS | bB | cC; C → cA}
• 1 Văn phạm trên là văn phạm gì?
• 2 Chuỗi abab có thuộc ngôn ngữ sinh ra bởi văn
phạm hay không? Vì sao?
Phân loại văn phạm theo Chomsky
3 Văn phạm loại 2
Là văn phạm mà mọi luật sinh có dạng A→ α→ααα với A là một
biến đơn (A∈∈ ∆) và αααα ∈∈∈ (Σ ∪∪∪ ∆)* - văn phạm phi ngữ cảnh
CFG(Context-Free Grammar)
Ngôn ngữ của lớp văn phạm này được gọi là ngôn ngữ phi
ngữ cảnh (CFL)
4 Văn phạm loại 3
Là văn phạm mà mọi luật sinh dạng A→ aB hoặc A → a
với A, B là các biến đơn thuộc ∆, a là ký hiệu kết thúc thuộcΣ
-văn phạm chính quy RG(Regular Grammar)
Ngôn ngữ của lớp văn phạm này được gọi là ngôn ngữ
Trang 152/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 25/20
Bài tập
Xem các ví dụ trong sách
Lý thuyết ngôn ngữ hình thức và otomat
Tác giả: Đặng Huy Ruận
Từ trang 30 đến trang 45
Chú ý:
1 Ký hiệu V trong sách tương ứng với ký hiệu ∆
2 Ký hiệu ^ trong sách tương ứng với ký hiệuε
BÀI TẬP
Bài 1: Xét văn phạm G : ∆ = {S, A}, Σ = {a, b} và tập
P = { S -> aS| aA; A -> bA| b}.
- Xác định văn phạm loại mấy?
- Xây dựng dẫn xuất sinh ra chuỗi aaabb?
Bài 2: Xét văn phạm G : ∆ = {S}, Σ = {a, b} và tập
P = { S > aSb; S > ab }
- Xác định văn phạm loại mấy?
- Xây dựng dẫn xuất sinh ra chuỗi aaaabbbb ?
Trang 162/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 28/20
Bài 4
Cho văn phạm với tập luật sinh:
P = {S → a | aA; A → aS | b| cC; C → cA}
1 Xác định các thành phần của văn phạm?
2 Văn phạm trên là văn phạm loại gì?
3 Chuỗi accb có thuộc ngôn ngữ sinh ra bởi văn phạm
hay không? Vì sao?
Bài 5
1 Cho ngôn ngữ L = {a,b}, tính L3.
2 Tìm chuỗi đảo ngược của chuỗi dcab.
Trang 17Chương II
ÔTÔMÁT HỮU HẠN VÀ BIỂU THỨC
CHÍNH QUY
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 2/44
Ôtômát hữu hạn đơn định (DFA)
Ôtômát hữu hạn không đơn định (NFA)
Sự tương đương giữa DFA và NFA
NFA với ε-dịch chuyển (NFAε)
Sự tương đương giữa NFAε và NFA
Automata là cơ chế cho phép đoán nhận ngôn ngữ Với
một chuỗi bất kỳ, sau một số bước làm việc, ôtômát sẽ cho câu
trả lời chuỗi đó có thuộc ngôn ngữ hay không
Mỗi bước làm việc của Automata là một sự thay thế ký
hiệu, nghĩa là một bước dẫn xuất như ở trong văn phạm
Trang 182/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 4/44
Mô hình cơ chế ôtômát
Chuỗi nhập cần xác định sẽ được lưu trữ trên băng input
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 5/44
Phân loại các ôtômát
Phân loại dựa theo hoạt động của ôtômát
Ôtômát đơn định DA (Deterministic Automata) : tại
mỗi bước chuyển, nó chỉ có một khả năng duy nhất Sự
duy nhất này thể hiện tính đơn định
Ôtômát không đơn định NDA (Non - deterministic
Automata) tại mỗi bước di chuyển, nó có một vài khả
năng để chọn lựa Sự chọn lựa này thể hiện tính không
đơn định
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 6/44
Ôtômát hữu hạn (FA : Finite Automata)
Tại mỗi thời điểm, hệ thống có số trạng thái làhữu hạn
Mỗi trạng thái của hệ thống tại mỗi thời điểm sẽ thay đổi tùy
thuộc vàoINPUT
Ôtômát hữu hạn (FA) được chia thành 2 loại:đơn định(DFA)
vàkhông đơn định(NFA)
Trang 192/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 7/44
I Ôtômát hữu hạn đơn định - DFA
(Deterministic Finite Automata)
Ôtômát hữu hạn đơn định là bộ gồm năm thành phần(Q, Σ, δ, q0, F),
trong đó :
Qlà tập hợp hữu hạn các trạng thái
Σlà bộ chữ cái hữu hạn
δlà hàm chuyển ánh xạ từQ × Σ → Q, tức làδ(q, a)là một trạng
thái được cho bởi phép chuyển từ trạng tháiqtrên ký hiệu nhậpa
q0∈ Qlà trạng thái khởi đầu
F ⊆ Q là tập các trạng thái kết thúc
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 8/44
Sơ đồ chuyển (transition diagram)
Một đồ thị có hướng, gọi là sơ đồ chuyển tương ứng với một DFA
như sau:
Các đỉnh của đồ thịlà cáctrạng tháicủa DFA
Nếu có một đường chuyển từ trạng tháiqđến trạng tháiptrên
inputathì có một cung nhãnatừ đỉnhqđến đỉnhptrong sơ đồ
chuyển
Trạng thái khởi đầu q0nhãn "Start"
Các trạng thái kết thúc trong F được chỉ ra bằnghai vòng tròn
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 9/44
Ngôn ngữ được chấp nhận bởi DFA
Một chuỗi x được chấp nhận bởi ôtômát hữu hạnM (Q, Σ, δ, q0,
F)nếu δ(q0, x) = pvớip ∈ F
Ngôn ngữ được chấp nhận bởi M
L(M) = { x | δ (q0, x) ∈ F }
Trang 202/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 10/44
Cơ chế hoạt động của DFA
Cho xâu vào ω = x1 x2 x3 xn ∈ ∑*
Ta mô tả hoạt động của ôtômát như sau:
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 11/44
Sau đó, ôtômát lại tiếp tục chuyển từ trạng thái q1 dưới tác động của x2 về trạng
qn= δ(qn-1, xn) = δ(qo, x1 xn) ∈ Q Khi đó ôtômát dừng lại Nếu qn∈F thì ta nói
rằng
Cơ chế hoạt động của DFA
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 12/44
Ví dụ 1
Kiểm tra chuỗi 110101
Vẽ sơ đồ chuyển Kiểm tra chuỗi 1101?
VD Cho DFA: với Q = {q0, q1, q2, q3}, Σ = {0, 1}, F = {q0} và
hàm chuyển δ như sau:
Trang 212/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 13/44
Ví dụ 2
Cho ôtô mát đơn định M = <∑, Q, δ,qo, F> với ∑={0,1},
Q={qo, q1, q2, q3}, qo là trạng thái ban đầu, còn F = {q3} là
tập hợp trạng thái kết thúc Hàm chuyển trạng thái được cho
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 14/44
Giải thuật mô phỏng hoạt động của một DFA
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 15/44
Nhận xét
Tập Q của DFA thể hiện các trạng thái lưu trữ của ôtômát trong
quá trình đoán nhận ngôn ngữ, và như vậy khả năng lưu trữ của
ôtômát là hữu hạn
Hàm chuyển δ là hàmtoàn phầnvàđơn trị, cho nên các bước
chuyển của ôtômát luôn luôn được xác định một cách duy nhất
Chính vì hai đặc điểm này mà DFA mô tả như trên được gọi là
ôtômát hữu hạn đơn định
Trang 222/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 16/44
II.Ôtômát hữu hạn không đơn định - NFA
(Non-deterministic Finite Automata)
NFA tại mỗi thời điểm bộ điều khiển có thể chứa một số bất kỳ
các trạng thái để chuyển: 0, 1 hoặc nhiều hơn 1 trạng thái
Vậy DFA là một trường hợp đặc biệt của NFA (với số trạng thái
đểchuyển là 1)
Ôtômát hữu hạn không đơn định NFA là một bộ 5 thành phần
(Q, Σ, δ, q0, F) trong đó Q, Σ, q0và F có ý nghĩa như trong DFA,
nhưng δ là hàm chuyển ánh xạ từ Q × Σ → 2Q
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 17/44
Ví dụ
Chuyển NFA về dạng bảng
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 18/44
Ngôn ngữ được chấp nhận bởi NFA
L(M) = {w |||| δδδδ(q 0 , w) có chứa ít nhất một trạng thái trong F }
Trang 232/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 19/44
Câu hỏi
1 Nêu sự khác biệt cơ bản giữa DFA và NFA
2 Để đoán nhận chuỗi thì dùng ôtomát nào thì dễ dàng hơn Vì sao?
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 20/44
III Sự tương đương giữa DFA và NFA
Định lý: Nếu L là ngôn ngữ được chấp nhận bởi một NFA thì tồn tại một DFA
F’ = các phần tử thuộc Q’ mà các phần tử đó giao với F khác rỗng
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 21/44
Trang 242/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 22/44
Bài tập
Tìm hiểu phần mềm JFLAP,Tải về: http://www.jflap.org
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 23/44
IV NFA với εεεε-dịch chuyển (NFAεεεε)
Ta mở rộng mô hình NFA cho phép các phép chuyển trên nhãn
rỗng ε
Ví dụ 1: Sơ đồ chuyển của một NFA với ε-dịch chuyển :
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 24/44
Trang 252/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 25/44
δ(q, a) chỉ gồm các trạng thái có thể đến được từ q chỉ
bằng các cung nhãn a
δ*(q, ε) = ε-CLOSURE(q)
Hay δ*(q, wa) = ε-CLOSURE(δ (δ*(q, w), a))
δ*(q, a) gồm tất cả các trạng thái có thể chuyển đến được từ q
trên nhãn a gồm cả đường đi nhãn ε
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 26/44
Ngôn ngữ được chấp nhận bởi NFAεεεε
L(M) = {w | δ*(q0, w) có chứa ít nhất một trạng thái trong F}
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 27/44
Giải thuật mô phỏng hoạt động của một NFAεεεε
•
Trang 262/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 28/44
V Sự tương đương giữa NFA và NFAεεεε
Kết quả được chỉ ra trong bảng hàm chuyển sau :
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 30/44
q 1
Trang 272/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 31/44
VI Biểu thức chính qui (RE: Regular expression)
Ta có thể dùng biểu thức chính qui để biểu diễn ngôn ngữ
Định nghĩa
Cho Σ là một bộ chữ cái Biểu thức chính quy trên Σ được định
nghĩa một cách đệ quy như sau:
1) ∅ là biểu thức chính quy ký hiệu cho tập rỗng
2) ε là biểu thức chính quy ký hiệu cho tập {ε}
3) ∀a ∈ Σ, a là biểu thức chính quy ký hiệu cho tập {a}
4) Nếu r và s là các biểu thức chính quy ký hiệu cho các tập hợp R
và S thì (r + s), (rs) và ( r*) là các biểu thức chính quy ký hiệu
00 là biểu thức chính quy biểu diễn tập {00}
(0+1)* ký hiệu cho tập hợp tất cả các chuỗi số 0 và số 1, kể cả chuỗi
rỗng = {ε, 0, 1, 00, 01, 10, 11, 010, 011, 0010 }
(0+1)*00(0+1)* ký hiệu cho tập hợp tất cả các chuỗi 0,1 có ít nhất hai
số 0 liên tiếp = {00, 000, 100, 0000, 0001, 1000, 1001, 011001, }
(1+10)* ký hiệu cho tất cả các chuỗi 0, 1 bắt đầu bằng số 1 và không
có hai số 0 liên tiếp = {ε, 1, 10, 11, 1010, 111, 101010, }
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 33/44
Ví dụ
(0+1)*011 = ?.
0*1*0*= ?
Một chuỗi tên biến được gọi là hợp lệ trong một chương trình
Pascal nếu như nó bắt đầu bằng ít nhất một chữ cái và theo sau đó
là các chữ cái, số, ký hiệu gạch dưới(underline) hoặc một vài ký
hiệu cho phép khác trên bàn phím máy tính
r = (A + …+ Z + a + … + z) (A + …+ Z + a + … + z + 0 + … + 9 + _ + … )*
Trang 282/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 34/44
Ví dụ
Biểu thức chính quy ký hiệu cho tập hợp các số nguyên trong
ngôn ngữ lập trình Pascal :
Một chuỗi số nguyên trong một chương trình Pascal có thể bắt
đầu bằng dấu âm (-) hoặc dấu dương (+) hay không chứa ký hiệu
dấu, và theo sau đó là một chuỗi các ký hiệu số với ít nhất là một
số
Biểu thức chính quy có dạng như sau :
r = ( '+' + '-' + 'ε') ( 0 + … + 9) (0 + … +9 )*
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 35/44
VII Sự tương đương giữa biểu thức chinh qui và NFAεεεε
ĐỊNH LÝ Nếu r là biểu thức chính quy thì tồn tại một NFAεεεε
chấp nhận L(r).
Giải thuật
Phân tích biểu thức chính qui thành từng phần và áp dụng các qui
tắc sau để xây dựng NFAε tương đương
Qui tắc cơ bản:
Cho biểu thức chính qui: r = a ∀a ∈ Σ
NFAε tương đương:
2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 36/44
Giải thuật
Quy tắc cho phép hợp: r = r 1 + r 2