III. Hệ viết lại và vấn đề biểu diễn ngôn ngữ
IV.Văn phạm
Định nghĩa: là một bộ bốn G=(∑, ∆, P, S) trong đó:
∑ là bộ chữ kết thúc (tập kí hiệu kết thúc)
∆ là bộ chữ không kết thúc (tập kí hiệu không kết thúc)
S ∈ ∆ là kí hiệu bắt đầu
P là tập các sản xuất
∑, ∆ là hai bộ chữ rời nhau, V= ∑∪∆ là bộ chữ của văn phạm
IV.Văn phạm
Ví dụ: Cho văn phạm
G=({S,A,B}, {a,b}, S, P) trong đó P: SaAS|bBS|ε
AaaA|b BbbA|a
Văn phạm
Ví dụ: Văn phạm Tiếng Việt
<Câu><Chủ ngữ><vị ngữ>
<Chủ ngữ> <danh từ>|<tên>
<vị ngữ> <động từ>
<danh từ> ”bố”| “mẹ”| “gà”| “bò”| …
<Tên> ”Minh”| ”Hà”| ”Hồng”| “Lan”…
Văn phạm
Ví dụ: Văn phạm ngôn ngữ lập trình Pascal
<Tên><Chữ cái>|<Tên><Chữ cái>|<Tên><Chữ số>|<Tên> _
<Chữ cái>a|…|z|A|…|Z
Văn phạm
Ngôn ngữ sinh bởi văn phạm:
L(G)={x∈∑*|S=>* px}
L(G) là tập tất cả các xâu gồm toàn kí hiệu kết thúc được suy dẫn ra từ kí hiệu bắt đầu
Hai văn phạm được gọi là tương đương nếu chúng sản sinh ra cùng một ngông ngữ:
Văn phạm
Phân loại văn phạm:
Văn phạm loại 0 (văn phạm ngữ cấu): văn phạm tổng quát
Văn phạm loại 1 (Văn phạm cảm ngữ cảnh): mọi quy tắc có dạng:
αAβ αwβ (α, β∈V*; A∈∆, w∈V+)
Văn phạm loại 2 (văn phạm phi ngữ cảnh) mọi quy tắc có dạng:
Aw (A∈∆, w∈V*)
Văn phạm …
Ví dụ 2: Cho văn phạm G=({a,b},{∆},S,P) trong đó P gồm các sản xuất:
SaS|Sb|ε
Ngôn ngữ được sinh bởi văn phạm:
L={anbm| n,m≥0}
Ngôn ngữ được sinh bởi văn phạm L là ngôn ngữ gồm các kí hiệu a và b trong đó các kí hiệu a đứng trước các kí hiệu b.