
- 自動機理論教程
- 自動機理論 - 首頁
- 自動機理論 - 入門
- 自動機理論 - 歷史
- 自動機理論 - 應用
- 自動機理論術語
- 自動機中字串的基礎知識
- 自動機的集合論
- 語言和文法
- 計算理論中的文法
- 由文法生成的語言
- 喬姆斯基文法分類
- 有限自動機
- 確定性有限自動機 (DFA)
- 非確定性有限自動機 (NFA)
- 從 NFA 到 DFA 的轉換
- DFA 的最小化
- 摩爾機與米利機
- DFA 的補集
- 正則表示式
- 自動機中的正則表示式
- 自動機中的 Arden 定理
- 將正則表示式轉換為有限自動機
- 正則文法的泵引理
- 計算理論中的正則集
- 上下文無關文法
- 上下文無關文法 (CFG)
- 上下文無關文法中的二義性
- 上下文無關語言的封閉性
- 簡化上下文無關文法
- 喬姆斯基正規化 (CNF)
- 格雷巴赫正規化 (GNF)
- 上下文無關文法的泵引理
- 下推自動機
- 下推自動機 (PDA)
- 下推自動機的接受
- 由 CFG 構造 PDA
- 下推自動機和語法分析
- 圖靈機
- 圖靈機 (TM) 基礎
- 圖靈機接受的語言
- 多磁帶圖靈機
- 多道圖靈機
- 非確定性圖靈機
- 半無限帶圖靈機
- 線性界限自動機 (LBA)
- 可計算性和不可判定性
- 圖靈語言的可判定性
- 不可判定語言
- 圖靈機停機問題
- 計算理論中的 Rice 定理
- Post 對應問題 (PCP)
- 自動機理論資源
- 自動機理論 - 快速指南
- 自動機理論 - 資源
- 自動機理論 - 討論
語法導論
從文學意義上講,文法指的是自然語言會話的句法規則。自從英語、梵語、漢語等自然語言誕生以來,語言學家就一直在試圖定義文法。
形式語言理論在計算機科學領域得到了廣泛的應用。**諾姆·喬姆斯基**在1956年給出了一個有效的計算機語言編寫文法數學模型。
文法
一個文法**G**可以形式化地寫成一個四元組 (N, T, S, P),其中:
**N** 或 **VN** 是變數或非終結符的集合。
**T** 或 **∑** 是終結符的集合。
**S** 是一個特殊的變數,稱為起始符,S ∈ N
**P** 是終結符和非終結符的產生式規則。產生式規則的形式為 α → β,其中 α 和 β 是 VN ∪ ∑ 上的字串,並且 α 中至少有一個符號屬於 VN。
示例
文法 G1:
({S, A, B}, {a, b}, S, {S → AB, A → a, B → b})
這裡:
**S、A** 和 **B** 是非終結符;
**a** 和 **b** 是終結符
**S** 是起始符,S ∈ N
產生式,**P : S → AB, A → a, B → b**
示例
文法 G2:
(({S, A}, {a, b}, S,{S → aAb, aA → aaAb, A → ε } )
這裡:
**S** 和 **A** 是非終結符。
**a** 和 **b** 是終結符。
**ε** 是空串。
**S** 是起始符,S ∈ N
產生式 **P : S → aAb, aA → aaAb, A → ε**
文法的推導
可以使用文法中的產生式從其他字串推匯出字串。如果文法**G**有一個產生式**α → β**,我們可以說**x α y** 在**G**中推匯出**x β y**。這個推導寫成:
x α y ⇒G x β y
示例
讓我們考慮一下文法:
G2 = ({S, A}, {a, b}, S, {S → aAb, aA → aaAb, A → ε } )
可以推匯出的一些字串是:
S ⇒ aAb 使用產生式 S → aAb
⇒ aaAbb 使用產生式 aA → aAb
⇒ aaaAbbb 使用產生式 aA → aaAb
⇒ aaabbb 使用產生式 A → ε