高级语言及文法描述
一.基本概念
1.程序语言
语法——语法规则和词法规则
语义——描述语法单位的功能和意义
词法规则——合法单词的构成规则(有限状态自动机或正规式描述)
语法规则——合法程序的构成规则(用上下文无关文法描述)
字母表∑——有限字符集(大小写英文字母,数字,特殊字符),其中每个元素称为符号
单词符号——有独立意义的最基本结构(包括常数,标识符,基本字,算符和界符)
语法单位——由单词符号构成更大的结构(表达式,语句,分程序,函数)
2.上下文无关文法
空字ε——不包含任何符号的序列
V的闭包——V*
文法——描述语言的语法结构的形式规则
上下文无关文法G——定义的语法范畴(语法单位)完全独立于该范畴可能出现的环境。四个组成部分:一组终结符号,一组非 终结符号,一个开始符号一组产生式
终结符号(单词符号)——不可再分的基本符号
非终结符号——终结符号和非终结符号组成的符号串的集合
开始符号——特殊的非终结符
产生式——规则,形式为: A→α
句型——从开始符号S推导若干步推出α,称α为句型
句子——仅含终结符号的句型
语法分析树(语法树)——表示推导过程(不一定唯一,可能存在文法二义性)
3.其他语言形式
0型文法(短语文法)——α→β(α中至少含有一个非终结符)
1型文法(上下文有关文法)——对非终结符进行替换的时候必须考虑上下文环境(|α|<=|β|且 S不得出现在任何产生式的右端)
2型文法(上下文无关文法)
3型文法(正规文法)——G的任何产生式为A→αB或A→α
二.习题
1.标识符和 名字的区别
标识符是以字母开头后跟字母跟数字的字符串;当给标识符一定意义时,标识符成为名字。
2.令+、*和↑代表加、乘和乘幂,按优先级规则计算1+1*2↑2*1↑2
(1)优先顺序(自高至低)为+、*和↑,同级优先采用左结合。
(2)优先顺序↑、+、*,同级优先采用右结合。