语法,顾名思义,是一种特定的描述方法。我们学习的英语语法,又或者是程
序语言的语法,都有严格的格式要求。对于算术表达式而言,比如 9-5+2
,
3-
2,语法是两个数字之间必须出现+,-,如果出现 9+-5,那么这就是错误的语
法。
那我们怎么来制定语法呢?在编译原理领域,使用一个通用的表示方法来描述
语法,这个方法就是上下文无关文法或 BNF 范式。
比如上述的算术(+和-)表达式:9-5+2,我们可以推导出如下 BNF 范式:
list->list+digit|list-digit|digit
digit->0|1|2|3|4|5|6|7|8|9
list 代表一个表达式序列,digit 代表数字,箭头->可以读作“可以具有如下形
式”,而竖线|代表或的意思。
词法分析器
词法分析器读入源程序中的字符序列,将他们组织为具有词法含义的词素,生
成并输出代表这些词素的词法单元(Token)。
语法分析器
语法分析器根据词法单元,以语法分析树的形式构建表达式,最终形成一颗抽
象的语法树(abstract syntax tree),这是一种表示了层次化的结构。
语法分析树
评论0
最新资源