编译原理 —— 文法
本文最后更新于:2019年11月14日 晚上
概览:文法、语言、以及文法的类型
如何描述一种语言
- 如果语言是有穷的(只含有有穷个句子),可以将句子逐一列出来表示
- 如果语言是无穷的,则找出语言的有穷表示:
- 生成方式(文法):语言中的每个句子可以用严格定义的规则来构造
- 识别方式(自动机):用一个过程,当输入一串任意语言时,该过程经过有限次计算就会停止,若属于,回答“是”,若不属于,要能停止并回答“不是”。
文法的定义
语言的定义
文法的类型
通过对产生式施加不同的限制,Chomsky(乔姆斯基)将文法分为四种类型:
0型文法(短语结构文法)的能力相当于图灵机。
1型文法(上下文有关文法):产生式的形式为 α1Aα2→α1βα2
,即只有A出现在α1和α2的上下文中时,才允许β取代A。其识别系统是线性界限自动机。
2型文法(上下文无关文法CFG):产生式的形式为A→β,β取代A时与A的上下文无关。其识别系统是不确定的下推自动机。(其产生式左部只有一个非终结符)
3型文法(正规文法RG):文法G= (VN,VT,P,S),其中P中的产生式的形式为A→αB或者A→α,其中A和B是非终结符号,α属于VT* 。产生的语言是有穷自动机(FA)所接受的集合。
上下文无关文法(2型文法)有足够的能力描述程序设计语言的语法结构,如描述算术表达式或者各种语句。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!