目录
第二章 高级程序语言
2.1.1 语法
字符集:又称字母表,是一个有限符号的集合,如大小写英文字母、数字、空白、+-*/、>=<、…。
程序语言:可以看做一定字符集上的一个字符串(有限序列)。
语法:是一组规则,用它可以形成和产生一个合适的程序。
词法规则:规定了字母表中哪样的字符串是一个单词符号,如0.5是一个实型常数,:=是赋值符号等等;正规式和有限自动机理论是描述词法结构和进行词法分析的有效工具。
语法规则:又称产生式规则,如0.5+x*y代表一个算术式;上下文无关文法是一种描述语法规则的有效工具(但不完备)。 //类似算术式 = <数字><运算符><字母><运算符><字母>这种
空白字符是一个值得注意的问题,有的语言规定空白符除了在字符串中的出现外,在别的地方出现都没有意义,因此空白字符可以用于编排程序格式,但增加了词法分析的麻烦;某些语言中则作为间隔符,决定了单词符号的划分。
2.1.2 语义规则
语义规则:定义一个程序的意义,如算术表达式是左结合还是右结合等。
2.3 上下文无关文法
上下文无关文法:它所定义的文法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的。
上下文无关文法要素
终结符号:是组成语言的基本符号,是语言的一个不可再分的单位。
非终结符号:也称语法变量,用来代表语法范畴,是一个类的记号,而不是个体记号。
开始符号:是一个特殊的非终结符号,代表所定义的语言中我们最感兴趣的语法范畴。
产生式:也称产生规则或简称规则,是定义语法范畴的一种书写规则。
* 可以通过0步推导
例题
2.3.2 二义文法
二义文法:如果一个文法的某个句子对应两棵不同的语法树,即其最左(最右)推导不唯一,称该文法为二义文法。
作业
方法总结:观察最终式,每一步选择推导的时候从起始符号开始,然后根据要推导出的式子选择产生式