Compiler
lishuhuakai
这个作者很懒,什么都没留下…
展开
-
一个简易的Scheme解释器
项目的地址在这里:https://github.com/lishuhuakai/CS/tree/master/CS61A/Scheme这其实只是berkeley的CS61A课程上的一个Project,写一个Scheme语言的一个解释器!当然,上面的项目只是scheme语言的一个子集。我大概花了一天的时间读懂了代码,花了两天时间补充代码和测试代码,说实话,这个Project并不难。有原创 2016-07-10 15:59:31 · 2909 阅读 · 0 评论 -
关于Cool Compiler
这个Project其实是斯坦福cs143课程的一个assignment,这个作业的工作量确实很大。我花了大概整整二十天才完成了大部分的工作。没看错,是整整二十天,如果你没有一整段的时间来完成这个作业的话,我估计这个时间可能会延长个2~3倍的样子。但是如果光上课不做assignment的话,说实话,课程的效果会大打折扣,所以还是非常推荐大家来做一做这个Project的。好吧,随着我终于完成了这个ass原创 2016-07-30 23:24:32 · 4142 阅读 · 3 评论 -
一个简易的语法分析器
写一个Parser其实是很简单的一件事情.你之所以会觉得困难,是因为你对这个东西并没有足够深入的了解.又或者说,你被龙书上那堆深奥的理论吓到了.如果你某一天头脑发热,想写一个Parser了,我推荐给你一些好东西,首先是轮子哥的博客http://www.cppblog.com/vczh/archive,我是看了他写的三篇关于正则表达式的实现的文章,撸了一个正则表达式引擎之后,突然一下子知道了Parse原创 2017-04-12 11:19:35 · 2048 阅读 · 0 评论 -
一个简易的词法分析器
代码大概1000行左右,使用了C++进行编写,实现的功能主要是将正则式转换成为一棵二叉树,然后对于这棵二叉树的结构,递归地来构建NFA,然后通过Thompson的方法将这个NFA转换成为了DFA,当然,我这里直接用表格的方式来表示DFA,所以后面的Hopcroft算法将DFA最小化可能并没有太多的意义,随意我将这个算法包裹了起来。不过我也完整的实现了Hopcroft算法。当然,正则式支持不完整,只支原创 2016-06-09 00:55:22 · 3713 阅读 · 2 评论