巴克斯诺尔范式的相关词语中英文对照和知识点
syntax 语法 强调的是编程语言的组形式,例如一个句子中会包含表达式、陈述还有各种单元等等
semantics 语义 强调的是这个编程语言的实际含义,例如While的语义为:当Boolean表达式为true时,内部的陈述就会被执行;否则就会跳过while段
recognizer 识别器 当已知一个句子的时候,可以识别它是否满足当前规则
generator 生成器 当已知规则的情况下,可以生成任意满足当前规则的句子
lexeme 词素 例如, ‘+’, ‘-‘, ‘*’, ‘/’, ‘=’, ‘1’, ‘;’ 
token 词素的分类 例如,可以把1, 3, 10分为int_literal类
Backus-Naur Form 巴克斯诺尔范式 简称,巴克斯范式
nonterminal symbol 非终结符 在<>中间的字符
terminal symbol 终结符 没有<>包围的字符
left-hand side(LHS) 左边 在巴克斯范式中,一般是起始符,即在->或=左边的部分,right-hand side(RHS)同理
identification 标识符 变量的名字,例如,int a,b,c; 中的a,b,c
derivation 推导 用终结符代替所有非终结符的过程
leftmost derivation   从RHS的最左边开始推导
parse tree 语法分析树 或者语法解析树
ambiguity 歧义

由于两个或以上非终结符出现在同一个式子当中,从不同位置开始推导会产生不一样的计算顺序。

解决方法:把优先级高的放入抽象概念中。抽象即可理解成一个非终结符,因为它里面的内容还不确定,所以还是很抽象的。

operator associativity 操作符的结合性 如果编程语言是LHS的,那么它就是有left associativity的

 

扩展巴克斯范式的知识点
[] 可选表达式,可以使用[]中的表达式或者不使用 opt
(…|…|…) 在括号里面任选其一 one of
{} {}中的内容可以使用0到多次  

版权声明:本文为anthonyhoo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/anthonyhoo/p/13020462.html