关于Backus-Naur Form巴克斯诺尔范式和扩展巴克斯范式的知识点和相关词语中英文对照
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到多次 |
关于Backus-Naur Form巴克斯诺尔范式和扩展巴克斯范式的知识点和相关词语中英文对照的更多相关文章
- Extended Backus–Naur Form
From Wikipedia, the free encyclopedia In computer science, Extended Backus–Naur Form (EBNF) is a fam ...
- BNF巴科斯-诺尔范式
概述 BNF是描述编程语言的文法.自然语言存在不同程度的二义性.这种模糊.不确定的方式无法精确定义一门程序设计语言.必须设计一种准确无误地描述程序设计语言的语法结构,这种严谨.简洁.易读的形式规则描述 ...
- 【开发】Form Validate 表单验证 扩展应用
目录: ★.文本输入框(easyui-textbox) ★.数字框(easyui-numberbox) ★.时间(easyui-datebox) ★.文本域(easyui-textbox easyui ...
- 软件理论基础—— 第一章命题逻辑系统L
逻辑 语法 语义 推理系统 公理 推理规则 MP A,A->B =>B HS A->B,B->C => A->C 命题逻辑公式 ::= BNF backus ...
- C#中反射接受的字符串需要满足的Backus-Naur Form语法
MSDN的Specifying Fully Qualified Type Names指明了C#中反射接受的字符串需要满足如下的Backus-Naur Form语法. BNF grammar of fu ...
- How browsers work
这几天翻译一篇旧文 How browsers work ( 以现代浏览器chrome.火狐.safari 为对象来分析),这篇文章网上有其他的翻译版本,自己再翻译一遍主要是练习阅读英文文章,而且自己翻 ...
- Yacc 与 Lex 快速入门
Yacc 与 Lex 快速入门 Lex 与 Yacc 介绍 Lex 和 Yacc 是 UNIX 两个非常重要的.功能强大的工具.事实上,如果你熟练掌握 Lex 和 Yacc 的话,它们的强大功能使创建 ...
- 正则语言引擎:一个简单LEX和YACC结合运用的实例
本文先描述了LEX与YACC的书写方法.然后利用LEX与YACC编写了一个简单正则语言的引擎(暂时不支持闭包与或运算),生成的中间语言为C语言. 正则引擎应直接生成NFA或DFA模拟器的输入文件,但在 ...
- Yacc 与 Lex 快速入门(词法分析和语法分析)
我们知道,高级语言,一般的如c,Java等是不能直接运行的,它们需要经过编译成机器认识的语言.即编译器的工作. 编译器工作流程:词法分析.语法分析.语义分析.IR(中间代码,intermediate ...
随机推荐
- OSG程序设计之Hello World 2.0
现在为Hello World添加一些键盘响应事件. //需要多添加两个库:osgGAd.lib.osgd.lib 代码如下: #include <osgDB/ReadFile> #incl ...
- 从零开始通过webhooks实现前端自动化
1. 前置条件 有一台自己的服务器.比如阿里云,腾讯云之类 有远程仓库能够push代码,pull代码.比如github,或者码云 远程仓库有webhooks功能 2. 自动化部署流程 3. 构建流程 ...
- 前端【JS】,深拷贝与浅拷贝的区别及详解!
我是前端小白一枚,为了巩固知识和增强记忆,开始整理相关的知识,方便以后复习和面试的时候看看.OK,让我们进入正题~ 先说说浅拷贝和深拷贝的理解吧,个人是这样理解的:两个对象A.B, A有数据B为空,B ...
- spring的aop的注解配置
一.使用注解的方式配置后置通知 第一步,创建通知类LogAdvice 第二步,要在spring主配置文件中声明以注解的方式配置spring aop 第三步,测试 二.其他异常配置 package c ...
- java接口自动化(五) - 企业级代码管理工具Git的配置
1.简介 上一篇讲解完如何安装Git后,今天宏哥趁热打铁讲解一下Git的使用,要想使用Git,我们还需要做一些准备工作,首先你的拥有一个Git账号,所以如果你没有的话,就快速注册一个吧. 2.Git注 ...
- [hdu5402 Travelling Salesman Problem]YY
题意:给一个n*m的矩形,每个格子有一个非负数,求一条从(1,1)到(n,m)的路径(不能经过重复的格子),使得经过的数的和最大,输出具体的方案 思路:对于row为奇数的情况,一行行扫下来即可全部走完 ...
- C#语言实现推箱子
话不多说直接上代码 using System; namespace Boxer { class Program { const int WIDTH = 8; const int HEIGHT = 8; ...
- Amaze UI学习笔记——JS学习历程一
1.自定义事件 (1)一些组件提供了自定义事件,命名方式为{事件名称}.{组件名称}.amui,用户可以查看组件文档了解.使用这些事件,如: $('#myAlert').on('close.alert ...
- post请求导出表单。
postExcelFile(params, url) { //params是post请求需要的参数,url是请求url地址 var form = document.createElement(&quo ...
- 【python(deap库)实现】GEAP 遗传算法/遗传编程 genetic programming +
目录 前言 1.优化问题的定义 单目标优化 多目标优化 2.个体编码 实数编码 二进制编码 序列编码(Permutation encoding) 粒子(Particles) 3 初始种群建立 一般族群 ...