编译技术
naturemickey
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
词法分析——使用正则文法
在我的前一篇文章《按编译原理的思路设计的一个计算器》中,大致讲了编译器的结构及构造思路。这次把词法分析的部分单独拿出来细讲一下。一、什么是词法分析词法分析是编译器的第一个阶段。它输入一段程序的文本,输出这段文本中的每个词法单元。还是按前一篇文章的例子来说,我们输入一短程序文本(10 + pow(2, 3)) * sqrt(4) - 1给词法分析程序,词法分析程序会把原创 2014-03-29 11:37:29 · 6233 阅读 · 1 评论 -
按编译原理的思路设计的一个计算器
首先看一下这个计算器的功能:点击(此处)折叠或打开CALC> set a = 1; b = 2CALC> set c = 3CALC> calc (10 + pow(b, c)) * sqrt(4) - 135.0CALC> exit如上所示,这个计算器的功能非常简单:用set命令设置上下文中的变量。用calc命令计算一个表达式的值。原创 2014-02-17 23:29:00 · 11880 阅读 · 1 评论 -
简说JAVA8引入函数式的问题。
JAVA8中加入lambda演算是一个令人兴奋的新特性原创 2014-04-09 20:38:23 · 1623 阅读 · 0 评论 -
使用antlr4及java实现snl语言的解释器
对于antlr4的基础使用,请参考我的前一篇文章《用antlr4来实现中的计算器》。其实我对于antlr4的理解也仅限于那篇文章的范围,但那些内容对于我们实现一个SNL语言已是足够了。 SNL语言的简介可以百度百科(http://baike.baidu.com/subview/2298006/5909410.htm)中看到。简单说来,这是一个非常简单的结构化编程语言原创 2014-06-07 21:47:43 · 2052 阅读 · 0 评论 -
用antlr4来实现《按编译原理的思路设计的一个计算器》中的计算器
上次在公司内部讲《词法分析——使用正则文法》是一次失败的尝试——上午有十几个人在场,下午就只来了四个听众。本来我还在构思如何来讲“语法分析”的知识呢,但现在看来已不太可能。 这个课程没有预想中的受欢迎,其原因可能是:1.课程内容相对复杂,听众知识背景与基础差异比较大。2.授课技巧不够,不能把复杂的知识简单化的呈现给基础稍差一点的人。 针对这两原创 2014-06-02 21:01:44 · 1880 阅读 · 1 评论 -
对SNL语言的解释器实现尾递归优化
对于SNL语言解释器的内容可以参考我的前一篇文章《使用antlr4及java实现snl语言的解释器》。此文只讲一下“尾递归优化”是如何实现的——“尾递归优化”并不是一个语言实现必须要做的,但这是一个比较有趣的东西,所以我还是想拿来讲一讲。在前一篇文章中有一个例子:program recursion procedure f(integer d);原创 2014-06-22 01:09:40 · 1112 阅读 · 0 评论
分享