cyendra

Azarath Metrion Zinthos

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  编译原理

摘要:1 Object.send(:remove_const,'TRUE') 2 Object.send(:remove_const,'FALSE') 3 4 def to_integer(pro) 5 pro[-> n { n + 1 }][0] 6 end 7 8 def t... 阅读全文
posted @ 2015-02-01 22:20 cyendra 阅读(489) 评论(0) 推荐(1)

摘要:flex 1 %{ 2 #include 3 #include "mycalc.tab.h" 4 5 int yywrap(void) {return 1;} 6 %} 7 8 %% 9 10 "+" return ADD;11 "-" return SUB;12 "*" r... 阅读全文
posted @ 2014-12-27 17:19 cyendra 阅读(1464) 评论(0) 推荐(0)

摘要:构造最小DFA:构造NFA(课本上的构造法是不带ε边的,少了消ε的过程)NFA->DFA最小化DFA构造NFA:连接、并、重复NFA->DFA:从初始状态集合{S}开始,跑所有字符集,若得到新的状态集则入队。带有终结状态的集合仍然是终结状态。对状态重新编号。DFA的最小化:构造一个初始划分Π:终态集... 阅读全文
posted @ 2014-12-16 20:22 cyendra 阅读(243) 评论(0) 推荐(0)

摘要:Lex的匹配策略:1.按最长匹配原则确定被选中的单词2.如果一个字符串能被若干正规式匹配,则先匹配排在前面的正规式。lex源程序的写法:Lex源程序必须按照Lex语言的规范来写,其核心是一组词法规则(正规式)。一般而言,一个Lex源程序分为三部分,三部分之间以符号%%分隔。 定义段%%词法规则段%%... 阅读全文
posted @ 2014-12-16 19:33 cyendra 阅读(2017) 评论(0) 推荐(0)

摘要:RavenScheme简介RavenScheme使用了一个运行『读入-求值-打印』循环的解释器。该解释器从标准输入反复的读入表达式,对得到的表达式求值,然后打印出结果。如果用户键入:【加 1 2】解释器将打印出3如果用户键入3解释器会打印出3RavenScheme提供一个加载函数,它可以从文件读入并... 阅读全文
posted @ 2014-11-23 11:41 cyendra 阅读(364) 评论(0) 推荐(0)

摘要:以前我一直不能理解LISP里引用的作用,感觉引用和字符串没什么区别。比如:> (define (func) 'ok)> (func)'ok这里把引用ok当做了函数func的返回值。但是我在实现函数式汉语编程的时候,我把代码构造成了一个多叉的语法树,这时候对某一段代码的引用,就是不对代码Eval,直... 阅读全文
posted @ 2014-11-07 22:33 cyendra 阅读(4796) 评论(0) 推荐(0)

摘要:首先是词法分析。Token除了【】与:之后的注释之外,其他全部用空白字符分割。即【设置 【搞什么? 啊 啊啊】 【加 啊 啊啊】】:我是注释啊有Token (【) (设置)(【)(搞什么?)(啊)(啊啊)(】)(【)(加)(啊)(啊啊)(】)(】)Token有三种类型,一是左右括号,二是各种名字,三... 阅读全文
posted @ 2014-10-30 12:40 cyendra 阅读(314) 评论(0) 推荐(0)

摘要:之前实现了Raven语言的0.1版,仅仅支持表达式处理与控制语句,由于不支持数组、函数、类,甚至都不是图灵完全的语言。现在参考vczh的博客打算重新写一遍Raven语言。陈祖不愧是神啊,高中就写出支持脚本的游戏地图编辑器了。据说脚本引擎有四个重要属性:命令式、描述式按值计算、惰性计算强类型、弱类型、... 阅读全文
posted @ 2014-10-03 20:42 cyendra 阅读(335) 评论(0) 推荐(0)

摘要:词法分析器的主要任务是读入源程序的输入字符、将它们组成词素,生成并输出一个词法单元序列,每个词法单元对应于一个词素。当词法分析器发现了一个标识符的词素时,要将这个词素添加到符号表中。其他任务:过滤掉源程序中的注释和空白。将编译器生成的错误信息与源程序的位置联系起来。记录行号等。词法分析器的两个级联的... 阅读全文
posted @ 2014-09-09 17:04 cyendra 阅读(6896) 评论(0) 推荐(0)

摘要:文法的形式定义于分类一个上下文无关文法有四个元素组成:一个终结符号集合,也称为词法单元。一个非终结符号集合,也称为语法变量。一个产生式集合。一个开始符号。文法G可以抽象成四元组的形式:G=(VN,VT,P,S)其中VN表示非终结符集,VT表示终结符集,P表示产生式集,S表示开始符号。文法G描述的语言... 阅读全文
posted @ 2014-09-09 16:39 cyendra 阅读(3501) 评论(0) 推荐(0)