《编译原理及实践教程》第2章高级语言设计基础剖析.ppt

《编译原理及实践教程》第2章高级语言设计基础剖析.ppt

语言的有穷表示 语言的有穷表示有两种方法: 用产生的观点来表示语言。 方法:为语言定义一组规则,利用规则产生语言中的每个句子。 用识别的观点表示语言。 方法:利用一个算法(有限自动机)来判断某个给定的符号串(句子)是否在某语言中。 本章先从“产生的观点”来描述语言——文法。 有时为书写简洁,常把相同左部的产生式进行缩写。如: 其中,每个αi是A的一个候选式。 例2.4:下面是一个文法的几种等价写法。 文法的分类 例2.10 例2.11 4类文法总结: 4类文法的定义是对产生式逐渐加限制的,对应的语言描述能力越来越弱。 每种正规文法也都是上下文无关文法,每种上下文无关文法也都是上下文有关文法,而每种上下文有关文法也都是0型文法。 4类文法应用 在编译技术中通常使用正规文法(3型文法)描述高级程序设计语言的词法部分,用有限自动机来识别单词。 使用上下文无关文法(2型文法)描述高级程序语言的语法结构,用下推自动机识别语法成分。 例:考虑文法G2: 它定义的语言是: S ? AB A ? aA|a B ? bB|b L(G2) = {ambn |m,n≥1} 例2.8:构造一个文法G使得: L(G) = {anbn |n≥1 } S ? aSb S ? ab a,b的个数相同,则文法G为: 文法等价: 若文法G1和文法G2所产生的语言相同,即L(G

文档评论(0)

1亿VIP精品文档

相关文档