Automata and formal language
Dr. Huỳnh Trung Hiếu
Faculty of Information Technology
HoChiMinh City University of Industry
Welcome to ATM&NNHT
GV: TS. Huỳnh Trung Hiếu
Khoa CNTT
Email:
Thông tin môn học:
Số tín chỉ: 3
Lên lớp: 45 tiết
Tự học: 90 tiết
Yêu cầu:
Dự lớp trên 75%
Làm bài tập trên lớp và ở nhà
Thảo luận theo nhóm
Làm tiểu luận
Thi giữa học phần
Thi kết thúc học phần
3
Formal Languages & Automata
A formal language:
Is an abstraction of the general characteristics of programming languages.
Consists of a set of symbols and some formation rules by which these symbols can be
combined into sentences.
4
Formal Languages & Automata
An automaton:
Is a construction that possesses all the indispensable features of a digital computer.
Accepts input, produces output, may have some temporary storage, and can make
decisions in transforming the input into the output.
5
Formal Languages & Automata
Digital design
Programming languages
Compilers
Some immediate and important applications.
Tài liệu
Giáo trình lý thuyết automat và ngôn ngữ hình thức.
Hồ Văn Quân
An introduction to formal languages and automata.
Peter Linz
Introduction to automata theory, languages, and computation.
John Hopcroft & Jeffrey Ullman
Mục tiêu môn học
Xây dựng mô hình trừu tượng cho máy tính.
Lý thuyết cung cấp cho chúng ta những khái niệm giúp ta đi đến những ứng dụng như :
Thiết kế kỹ thuật số.
Ngôn ngữ lập trình.
Trình biên dịch.
Nhận dạng ngôn ngữ,….
Nội dung môn học
Phần 1:Giới thiệu khái niệm, dẫn nhập.
Phần 2: Automat hữu hạn.
Phần 3:
Ngôn ngữ và văn phạm chính quy.
Phần 4: Các tính chất của ngôn ngữ chính quy
Phần 5: Ngôn ngữ phi ngữ cảnh
Phần 6: Đơn giản văn phạm vi ngữ cảnh
Phần 7: Automat đẩy xống
Phần 9: Máy Turing
GiỚI THIỆU KHÁI NiỆM, DẪN NHẬP
10
Three Basic Concepts
Languages
Grammars
Automata
11
Languages
Là một hệ thống thích hợp nhằm để diễn tả những ý kiến, sự kiện, khái niệm chắc
chắn. Chúng bao gồm tập hợp các ký hiệu và quy luật
12
Languages
Alphabet: a finte and nonempty set of symbols
Σ = {a, b}
String: finite sequence of symbols from Σ
w = abaaa
Độ dài chuỗi |w|, chính là số ký tự trong chuỗi.
λ: empty string
Σ
*
: the set of all strings on Σ (Σ
+
= Σ
*
− {λ})
13
Languages
Language: a subset L of Σ
*
Word or Sentence: a string in L
14
Languages
Example 1:
Σ = {a, b}
Σ
*
= {λ, a, b, aa, ab, ba, aaa, }
L1 = {a, aa, aab} (finite language)
L2 = {a
n
b
n
| n ≥ 0} = {λ, ab, aabb, }
Các chuỗi aabb, aaaabbbb là các từ trên
ngôn ngữ L
2
, nhưng chuỗi abb thì không.
15
Languages
Language concatenation:
L1L2 = {xy | x∈L1, y∈L2}
L
n
= L L L (n times)
L
0
= {λ}
16
Languages
Example 2:
L = {a
n
b
n
| n ≥ 0}
L
2
= {a
n
b
n
a
m
b
m
| n ≥ 0, m ≥ 0}
17
Languages
Star-closure:
L
*
= L
0
∪ L
1
∪ L
2
Positive closure:
L
+
= L
1
∪ L
2
18
Grammars
A grammar for a natural language tells us whether a particular sentence is well-formed or
not.
<sentence> → <noun-phrase><predicate>
<noun-phrase> → <article><noun>
<predicate> → <verb>
<article> → a | the
<noun> → boy | dog
<verb> → runs | walks
khi đó ta có những câu như: "a boy
runs" và "the dog walks" là có
"dạng đúng" có nghĩa là được sinh
ra từ văn phạm trên.
19
Grammars
Formal grammar:
G = (V, T, S, P)
V: finite set of variables (tập biến)
T: finite set of terminal symbols (tập ký hiệu kết thúc)
S∈V: start variable (tập biến bắt đầu)
P: finite set of productions (luật sinh)
20
Grammars
Productions: Điểm chủ yếu của văn phạm
x → y
x∈(V∪T)
+
y∈(V∪T)
*
w = uxv derives (dẫn xuất ra) z = uyv
w ⇒ z
w1 ⇒
*
wn (w1 ⇒ w2 ⇒ ⇒ wn | w1 = wn)
w1 ⇒
+
wn
kí hiệu * cho biết dẫn xuất đến wn thì qua một số bước (số bước có thể = 0)
21
Grammars
Generated language:
Cho G = (V, T, S, P) là 1 văn phạm thì tập:
L(G) = {w∈T
*
| S ⇒
*
w} là ngôn ngữ được sinh ra bởi G
Derivation: nếu w∈L(G) thì tồn tại dẫn xuất:
S ⇒ w1 ⇒ w2 ⇒ ⇒ wn ⇒ w
Sentential forms: S, w1, w2, , wn (containing variables)
22
Grammars
Example 3:
G = ({S}, {a, b}, S, P)
P: S → aSb
S → λ
S ⇒ aSb ⇒ aaSbb ⇒ aabb
aabb: sentence aaSbb: sentential form
23
Grammars
Example 3:
G = ({S}, {a, b}, S, P)
P: S → aSb
S → λ
L(G) = {a
n
b
n
| n ≥ 0}
24
Grammars
Example 4:
G1 = ({A, S}, {a, b}, S, P1)
P
1
: S → aAb | λ
A → aAb | λ
25
Grammars
Example 4:
G1 = ({A, S}, {a, b}, S, P1)
P1: S → aAb | λ
A → aAb | λ
L(G1) = {a
n
b
n
| n ≥ 0}
G and G1 are equivalent