巴克斯诺尔范式的相关词语中英文对照和知识点
syntax
语法
强调的是编程语言的组形式,例如一个句子中会包含表达式、陈述还有各种单元等等
由于两个或以上非终结符出现在同一个式子当中,从不同位置开始推导会产生不一样的计算顺序。 解决方法:把优先级高的放入抽象概念中。抽象即可理解成一个非终结符,因为它里面的内容还不确定,所以还是很抽象的。
semantics
语义
强调的是这个编程语言的实际含义,例如While的语义为:当Boolean表达式为true时,内部的陈述就会被执行;否则就会跳过while段
recognizer
识别器
当已知一个句子的时候,可以识别它是否满足当前规则
generator
生成器
当已知规则的情况下,可以生成任意满足当前规则的句子
lexeme
词素
例如, '+', '-', '*', 'http://www.likecs.com/', '=', '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到多次