关于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 ...
随机推荐
- jQuery简单竖排手风琴折叠菜单代码
项目需求1.刚开始只显示,每个标题, 2.让每个 li列表隔行换色 3.当我点击某个标题时,下面的列表会缓慢的展开,其他列表展开的内容会收起 <!DOCTYPE html> <htm ...
- Oracle的pl/sql变量类型
pl/sql定义 sql是结构化查询语言.sql是不是一个编程语言?编程语言一般都能够声明变量,写条件判断,循环.sql不具备这些特征,所有sql不是一门编程语言.我们在实际的开发中,有这种需要,把s ...
- Spring Cloud学习 之 Spring Cloud Hystrix(断路器原理)
断路器定义: public interface HystrixCircuitBreaker { // 每个Hystrix都通过它判断是否被执行 public boolean allowRequest( ...
- Ubuntu 拦截并监听 power button 的关机消息
system:ubuntu 18.04 platform:rockchip 3399 board:NanoPi M4 前言 物理上的电源按键短按之后,系统直接硬关机了,导致应用程序无法保护现场,就直接 ...
- Oracle JDK究竟从哪个版本开始商用收费?
经常被问到Oracle JDK是不是要钱了?收费了?从哪个版本开始商用收费? 木有错,Oracle JDK从2019年4月16号开始商用商用商用收费了!有图有真像: 2019年4月16日当天,Orac ...
- 关于日常操作中sql的性能
最近接手了一个项目.使用的数据库是sql server,但是遇到一些关于日期的查询的时候,查询结果非常慢.看了下别人的sql //sql = sql + " and CONVERT(nvar ...
- sql:exists 与 not exists
$sql = "select a.Vchcode,a.vdate,a.btypeid,a.vcomment,a.total,a.vnumber,b.bfullname,b.artotal,b ...
- Codeforces Round #643 (Div. 2)(C ~ E)
C. Count Triangles 题目链接 : https://codeforces.com/contest/1355/problem/C 题目大意 : 给你 A , B , C , D 问有多少 ...
- QQ恢复解散后的群聊或删除后的好友的方法
今天有一个群被一个管理员乱踢人,之后将群解散. 事后几分钟我在想有没有什么方法可以重新恢复的方法,之后进入了QQ的官网进行查找. 本来以为没希望了,但是奇迹发生了. 原来真的可以恢复! 恢复的详情: ...
- ql自动化测试之路-概述篇
前言:本节主要讲解自动化测试的基本概述,包括分层自动化测试.自动化测试中用到的工具.以及关于自动化测试的想法 一.分层自动化测试 上图是经典的测试金字塔.用它来形容目前测试投入的价值是比较适合的,同样 ...