Compiler
Sedgewick
心存感恩地生活,自然而然地思考。
展开
-
两百行写一个递归下降解析器
最近看到Peter Cooper 用Ruby 实现了一个Recursive Descent Parser。让我惊讶的是,作者仅仅用了255 行Ruby 代 码就实现了。于是我决定分析一下这个神奇的rdparser。先看看它怎么用吧。初始化需要定义语法规则:如果左边是终结符,右边对于正则表达式;如果是非终结符,对于非终结符或终结符组成的字符串。并列规则用竖线("|")连接。原创 2009-06-04 19:37:00 · 2564 阅读 · 0 评论 -
用Ruby 写Turing 机
最近在看John E.Hopcroft,Rajeev Motwani,Jeffrey D.Ullman 三巨头写的Introduction to Automata Theory,Language,and Computation,想写一个Turing 机验证一下自己写的状态转移函数对不对。懒得很,网上搜了几个不错的。但Ruby Quiz 上的这个最简单。翻译 2009-12-02 21:21:00 · 1334 阅读 · 0 评论 -
当Python大刀砍向Brainfuck
以前学编译的都喜欢用Lisp练手,现在貌似改Brainfuck(参见:维基、Wiki)了。Brainfuck更简单(就八个命令),而且还是Turing完备的⋯⋯原创 2011-04-09 22:34:00 · 5632 阅读 · 0 评论