题目连接:http://codevs.cn/problem/1107/
一道很神奇的题目。对于算术表达式一类的问题,可以采用编译原理里的后缀表达式的方式来做,具体做法是分别维护两个栈,一个栈里保存表达式里的数字,另一个栈里保存表达式里的运算符,给每种运算符一个优先级,我们要维护这个栈的单调性,每次读入运算符中的数字或运算符,读入的是运算符时,若这个运算符比栈顶的运算符优先级低,就弹出栈顶元素...
分类:
其他好文 时间:
2014-10-06 14:53:50
阅读次数:
282
假设对'a + 3 * b'进行解释,其中a=2,b=5
代码很简单,就不再进行详细的解释了。
Num = lambda env, n: n
Var = lambda env, x: env[x]
Add = lambda env, a, b:_eval(env, a) + _eval(env, b)
Mul = lambda env, a, b:_eval(env, a) * _eval(e...
分类:
编程语言 时间:
2014-10-04 12:29:06
阅读次数:
519
今天来学习一些.net 的编译原理首先通过书本上内容了解了: .net framewrok 的核心是运行库执行环境,称为公共语言运行库(CLR),在CLR控制下运行的代码称为代码托管(managed code) 但是在CLR执行已经编写好的源代码之前,需要先进行编译它们,编译分为两个阶段: ...
分类:
Web程序 时间:
2014-10-01 11:37:51
阅读次数:
258
MYSQL 源代码 编译原理 AST和解析树 代码语法解析http://blog.csdn.net/wfp458113181wfp/article/details/17082355使用AST树 分类: antlr 2013-12-02 22:39 255人阅读 评论(0) 收藏 举报 目录(?...
分类:
数据库 时间:
2014-09-26 10:03:08
阅读次数:
4057
这是语法归约最后一部分了,文法当中还有个外部归约。它已经在前面以及这里都提及到了,也就是把全局声明定义和函数定义整合的过程,最后归约成一颗完整的树。根结点就是translation-unit,因此不再单独示例!其次,文法不是C的全部,真正的C还要包括语义分析部分,也就是把文法推导出来东西进行有意义化!即文法上推出的东西不是全部都合法的!c只用了文法推导结果中的一个子集,而不是全集!好比汉语词汇组合说出来的东西不是全部都有意义,可以有脏话废话和不是人话^_^...
分类:
其他好文 时间:
2014-09-25 17:22:47
阅读次数:
201
假设你是计算机科班出身,计算机系的基本课程如数据结构、操作系统、体系结构、编译原理、计算机网络你全修过我想大概可以分为4个阶段,水平从低到高从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码其中学习linux常用命令时就要学会自己编译内核,优化系统,调整参数安装和常用命令...
分类:
系统相关 时间:
2014-09-25 16:03:09
阅读次数:
244
笔者在该文章中实现了一个类似于Lex & Yacc的编译器前端构造工具,该工具可以构造指定词法文法的编译器前端,并且构造的分析器是线程安全的。...
分类:
其他好文 时间:
2014-09-25 01:15:48
阅读次数:
740
语法分析器
语法分析器(grammar parser)是编译器的核心部分之一,它的作用是检测词法分析器返回的token序列是否符合文法定义的规则。一个完整的语法分析器除了检测语法正确性外还要包含对出错的处理以及错误恢复等功能。...
分类:
其他好文 时间:
2014-09-24 10:37:26
阅读次数:
283
上篇文字是基本表达式归约过程示例,本篇将来点高级复杂的玩玩!这部分示例代码源自kernel的20个源程序文件,挑选运算符组合复杂和比较典型的表达式!因此只能用来归约示例,不是可运行代码!挑你有兴趣的运算符组合,瞅瞅!...
分类:
其他好文 时间:
2014-09-22 20:15:43
阅读次数:
150
词法分析器(tokenizer)的作用是按照词法定义规则将输入流分解为token序列,同时记录与每个token匹配的串和出现的位置等信息提供给语法分析器。手工编写一个针对某种语言的词法分析器是比较容易的,事实上很多编译器的词法分析器也是手写的,这种方式的优点是直观容易理解,缺点是开发效率低且易出错。编译技术经过几十年的发展已经形成了一套成熟的理论,应用这些理论可以让我们实现词法分析器的自动构造。在Lex中,每个词法规则由正则表达式定义,我们只需要定义每个token的正则表达式,Lex就可以自动生成对应的分析...
分类:
其他好文 时间:
2014-09-22 10:56:12
阅读次数:
701