Ngôn ngữ chính quy Nội dung: 1. Bao đóng Kleene và tổng Kleene 2. Ngôn ngữ chính qui (regular language) 3. Biểu thức chính qui (regular expression) 4. Đồ thị biểu diễn biểu thức chính quy Một ngôn ngữ chính qui (NNCQ) L trên bảng chữ cái là một ngôn ngữ được định nghĩa đệ qui:
Trang 1NGÔN NGỮ CHÍNH QUI
Regular Languages
CHƯƠNG 2
Trang 2 L3 = { aaa, aab, aac,
aba, abb, abc, aca, acb, acc, … }
Trang 3Nội dung
1 Bao đóng Kleene và tổng Kleene
2 Ngôn ngữ chính qui (regular language)
3 Biểu thức chính qui (regular expression)
4 Đồ thị biểu diễn biểu thức chính qui
Trang 4Nội dung
1 Bao đóng Kleene và tổng Kleene
3 Biểu thức chính qui (regular expression)
4 Đồ thị biểu diễn biểu thức chính qui
Trang 5Bao đóng Kleene & tổng Kleene
Xét L là một ngôn ngữ trên bảng chữ cái
L * là bao đóng Kleene (Kleene closure)
L + là tổng Kleene (Kleene plus)
n n
Trang 6Bao đóng Kleene & tổng Kleene
Ví dụ: L = {a, b, c} là ngôn ngữ trên
n n
Trang 7Bao đóng Kleene & tổng Kleene
Trang 8Nội dung
2 Ngôn ngữ chính qui (regular language)
Trang 9Ngôn ngữ chính qui
chữ cái là một ngôn ngữ được định nghĩa
đệ qui:
L = là một NNCQ trên
a, L = { a } là một NNCQ trên
Nếu L, L1, L2 là NNCQ trên thì (L1 L2), L1L2, L* cũng là NNCQ trên
Không có ngôn ngữ nào khác là NNCQ
Trang 11Nội dung
3 Biểu thức chính qui (regular expression)
Trang 12Biểu thức chính qui
Biểu diễn các NNCQ trên
Biểu thức chính qui Ngôn ngữ chính qui
Trang 14Biểu thức chính qui
Lũy thừa và tổng Kleene
Biểu thức chính qui Ngôn ngữ chính qui
r là biểu thức chính qui của L
Trang 15Nội dung
4 Đồ thị biểu diễn biểu thức chính qui
Trang 16Đồ thị biểu diễn BTCQ
Các bước xây dựng đồ thị, G(r)
• Bắt đầu với đỉnh nội và đỉnh kết thúc
• Đỉnh nội được ký hiệu có mũi tên vào
• Đỉnh kết thúc được ký hiệu bởi vòng tròn đôi
• Vẽ cạnh nối từ đỉnh nội đến đỉnh kết thúc
• Gán nhãn của cạnh là r
r
Trang 17Đồ thị biểu diễn BTCQ
Các bước xây dựng đồ thị
nhãn không chứa các phép toán +, , * thì dừng
• Thay cạnh có nhãn f + g bởi hai cạnh với nhãn f và g
f + g
f
g
Trang 18Đồ thị biểu diễn BTCQ
Các bước xây dựng đồ thị
nhãn không chứa các phép toán +, , * thì dừng
• Thay cạnh có nhãn f g bằng cách thêm một đỉnh và
hai cạnh với nhãn f và g như sau
Trang 19Đồ thị biểu diễn BTCQ
Các bước xây dựng đồ thị
nhãn không chứa các phép toán +, , * thì dừng
• Thay cạnh có nhãn f * bằng cách thêm một đỉnh và ba cạnh với nhãn , f, như sau
f
Trang 23Đồ thị biểu diễn biểu thức chính quy
Ví dụ: r = (1* + 110)*0
Vẽ đồ thị biểu diễn cho biểu thức r
Trang 24 Automat hữu hạn
Ứng dụng
• Vending machines
• Video games: Pac-Man’s ghost
• Internet Protocol: TCP as a DFA