本文中的图片均来自学堂在线-2019年春编译原理课堂(西安邮电大学)
文法与语言的表示:
一般情况下,使用文法表示语言的结构
语言的文法是一组规则,包含词法规则和文法规则
词法规则:
描述语言单词符号构成规则的词称之为词法规则
语言的单词符号包括:标识符,常数,运算符等
词法规则的描述工具通常为:正规文法(正规式,有限自动机)
语法规则
描述语言语法单位构成规则的称为语法规则
语言的语法单位包括;表达式,语句,函数,过程等
语法规则的描述工具通常为:上下文无关文法[后续介绍]
字母表与符号串
符号串的运算:
符号串的长度:符号串中符号的个数为符号串的长度
若X是符号串,则|x|表示符号串的长度
符号串的连接:
符号串X和y的连接,是将符号串y连接在符号串x后面组成的新符号串,用xy表示
例:符号串x=ab,y=bc,则:xy=abbc,yx=bcab
xy的连接与yx的连接的结果是不同的
符号串的幂运算
符号串集合的乘积运算
符号串集合的幂运算
符号串集合的闭包运算
上下文无关文法
文法:是描述语言结构的形式规则
乔姆斯基将文法分为四种类型:0型,1型,2型,3型
3型文法即正规文法,是描述程序语言词法的有效工具
2型文法即上下文无关文法,是描述程序语言语法的有效工具
规则:
又称产生式,是定义语言语法单位结构的规则它使用符号"->"表示定义为...或者由...组成
推导:用规则(产生式)中"->"右边的成分反复替换左边成分的过程称为推导
语法树:语法结构的图形表示
文法和语言的形式定义
产生式(规则)
文法
推导与规约
广义推导
句型和句子
文法开始符号推导的任意字符串都是句型
根据上述的定义:59是句型,也是句子,V*是终结符号和非终结符号的集合
语言
规范推导和规范规约
等价文法
递归产生式和递归文法
句柄,直接短语和句柄