计算机语言模式与语法设计解析
1. 计算机语言的抽象模式
自然语言中的词序和依赖约束衍生出四种抽象的计算机语言模式:
- 序列(Sequence) :元素的有序排列,如数组初始化器中的值。
- 选择(Choice) :在多个可选短语之间进行选择,像编程语言中的不同语句类型。
- 令牌依赖(Token dependence) :一个令牌的出现要求在短语的其他地方出现其对应令牌,例如匹配的左右括号。
- 嵌套短语(Nested phrase) :具有自相似语言结构的短语,如嵌套的算术表达式或编程语言中的嵌套语句块。
为了实现这些模式,我们主要使用由替代项、令牌引用和规则引用组成的语法规则(Backus - Naur - Format [BNF])。为了方便,我们还会将这些元素分组为子规则。子规则是用括号括起来的内联规则,我们可以将子规则标记为可选(?)、零个或多个(*)或一个或多个(+)循环,以多次识别包含的语法片段(Extended Backus - Naur - Format [EBNF])。
2. 从语言样本推导语法
编写语法类似于编写软件,但我们处理的是规则而非函数或过程。在深入研究规则内部之前,了解语法的整体结构以及如何形成初始语法框架是很有必要的。
语法由命名语法的头部和一组可以相互调用的规则组成,例如:
grammar MyG;
rule1 : «st
超级会员免费看
订阅专栏 解锁全文
1300

被折叠的 条评论
为什么被折叠?



