转自:http://blog.itpub.net/22990797/viewspace-750157/Oracle文档中用到了两种表达语法的方法,语法图和BNF。BNF, Backus-Naur Form,中文是巴科斯范式:,它是由约翰·巴科斯(John Backus)和彼得·诺尔(Peter Na...
分类:
数据库 时间:
2014-11-24 18:42:41
阅读次数:
175
BNF巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首先引入的用来描述计算机语言语法的符号集。现在,几乎每一位新编程语言书籍的作者都使用巴科斯范式来定义编程语言的语法规则。在BNF中,双引号中的字("word")代表着这些字符...
分类:
其他好文 时间:
2014-10-13 16:58:10
阅读次数:
233
先了解下相关的知识点(以下都只用先了解简单的概念,建议wiki):BNF范式,上下文无关文法,函数柯里化。lambda读书笔记演算:http://www.blogjava.net/wxb_nudt/archive/2005/05/15/4311.aspxlambda演算实例关于lambda演算的定义...
分类:
其他好文 时间:
2014-09-15 14:06:39
阅读次数:
350
2 -语言这一节从词法、语法、句法上描述 Lua 。 换句话说,这一节描述了哪些 token (符记)是有效的,它们如何被组合起来,这些组合方式有什么含义。关于语言的构成概念将用常见的扩展 BNF 表达式写出。也就是这个样子: {a} 意思是 0 或多个a, [a] 意思是一个可选的a。 非最终的符...
分类:
其他好文 时间:
2014-08-04 01:46:46
阅读次数:
242
源代码主要目录结构 Demo: python 的示例程序 Doc: 文档 Grammar: 用BNF的语法定义了Python的全部语法,提供给解析器使用 Include: 头文件,在用c/c++编写扩展模块时使用 Lib: Python自带的标准库,用pytho...
分类:
编程语言 时间:
2014-07-22 08:19:38
阅读次数:
303
题目:
写一个三则运算(加减乘)表达式的计算程序,为了简化,规定数字只有一位,表达式内没有空格,但允许有括号。满足四则运算的结合性和优先级。
解答:
首先写出BNF(包括结合性和优先权)。
exp → exp addop term | t
e r m
addop → + | -
term → term mulop
factor | f a c t o r
mulop...
分类:
其他好文 时间:
2014-05-15 18:17:45
阅读次数:
370
最近在看DSL的东西,对于外部DSL,写一个解释器是必不可少的。我试图归纳一下我学到的,以写一个解释器为目标,讲一下如果来实现一个可用的解释器。一个解释器通常可以分为一下几个阶段:
词法分析(Lexer) 语法分析(Parser, BNF, CFG, AST) 语义分析(AST的处理, annota...
分类:
其他好文 时间:
2014-04-30 00:39:01
阅读次数:
466