俺的回收站

架构分析 解释编译原理
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  编译器【解释器】开发

摘要:传统Web开发,一般都是以客户端作为主动的,客户端发请求,然后接收响应,然后再发请求...,整个流程都是以客户端为推动源。这样的一个结果就是,一般的web框架都是把他们的控制器分成一个个的方法调用,客户端的请求就对应到这些方法调用当中。而Web Continuation Server 通过引入Continuation机制将逻辑反转了过来,并以此实现了对于page flow的完整描述。 阅读全文

posted @ 2008-01-26 09:30 Riceball LEE 阅读(2547) 评论(8) 推荐(0)

摘要:所谓Continuation就是保存接下来要做的事情的内容(the rest of the computation)。举个简单例子,我在写文档,突然接到电话要外出,这时我存档,存档的数据就是Continuation(继续即将的写作),然后等会儿回来,调入存档,继续写作。Continuation这个概念就协程来说就是协程保护的现场。而对于函数来说就是保存函数调用现场——Stack Frame值和寄存器,以供以后调用继续从Continuation处执行。换一个角度看,它也可以看作是非结构化Goto语句的函数表达。当我们执行 Yield从协程返回的时候,需要保存的就是Continuation了。 阅读全文

posted @ 2008-01-19 21:22 Riceball LEE 阅读(4750) 评论(2) 推荐(0)

摘要:在很多时候,我们需要对数据结构(如:List,Stack)中的元素按某种要求进行遍历,我们称之为“控制”;然后对目标元素进行某个操作,我们称之为 “行为”。许多情况下,这种“控制”或行为的代码本来是可以被复用的,但是因为难以将这其中的“控制”和“行为”分离,造成了我们不得不一遍又一遍的书写这些类似的代码(虽然利用回调可以实现在一定程度上的“控制”和行为的分离,但是并不优雅,也不无法实现彻底重用)。这时候,有聪明人就将目光转向了非对称式(asymmetric-coroutine)协程。 阅读全文

posted @ 2008-01-03 22:48 Riceball LEE 阅读(4314) 评论(7) 推荐(0)

摘要:你相信么,在JavaScript只要5行代码即可实现完整的面向方面AOP编程功能。这5行代码的功能包括: * 无限层次的函数无害拦截 * 函数执行前拦截 o 检查函数的参数值 o 重新设定函数的参数值 * 函数执行后拦截 o 检查函数执行后的返回结果 o 重新设定函数的返回结果 阅读全文

posted @ 2007-09-02 16:57 Riceball LEE 阅读(6700) 评论(26) 推荐(0)

摘要:利用 CLR 提出的 Static Members 的概念,可以将普通类型全部类化,包括模块这一概念,通过Static Method 的这样的概念(没有Self指针,只能操作Static Fileds,等价于原来的函数过程),这样不会影响过程的速度性能。从速度性能上来说,的确该让我满意了!但是对于内存开销来说,采用类这一形式来表现类型后,内存开销增大了,即使表现最简单的整数类型,也不得不用类来表示。还是仔细列举出优劣对比: 阅读全文

posted @ 2007-01-22 12:26 Riceball LEE 阅读(2228) 评论(6) 推荐(0)

摘要:通过 static class 概念,让所有的一切都可以以类的观点进行处理了!漂亮的solver!模块这一概念也可以视作一个static class. 真是好主意,看来俺的TurboScript需要重新构思类型系统了。 阅读全文

posted @ 2007-01-07 11:23 Riceball LEE 阅读(1813) 评论(0) 推荐(0)

摘要:初步评测世界上最快的脚本引擎的解释器的执行效率 —— EUPHORIA, Lua,以及俺写的TurboScript解释器核心原型【也许会开源】。 阅读全文

posted @ 2006-12-25 23:02 Riceball LEE 阅读(4698) 评论(15) 推荐(0)

摘要:编译汇编语句: ADD EBX, 300,重复2017次,测得其运行时间为 60 个 QueryPerfomanceCount。在这里直接运行的机器码应该是最快实现了吧。但是让我们编译IL语句: ldc.i4 300, ADD 重复2017次,测得其运行时间居然只有区区 5个 QueryPerfomanceCount。跌破眼球吧,到底是怎么回事了,这就是JITter 优化的功劳了。 阅读全文

posted @ 2006-12-22 17:36 Riceball LEE 阅读(2590) 评论(19) 推荐(0)

摘要:CLR 的实现虚拟机就是一个与Forth类似的堆栈虚拟机。Forth是一套建造于一个虚拟硬件上之系统,其中包括有操作系统、语言、除错器等等软件。 所以Forth规类为混合操作系统之语言。因此种特性使之特别合适于嵌入式系统中。 阅读全文

posted @ 2006-12-17 16:33 Riceball LEE 阅读(1555) 评论(3) 推荐(0)

摘要:Coco/R 使用增强的 EBNF 文法建立递归下降分析的分析器(Recursive Descent Parser)和扫描器(Scanner)。Coco/R 除了提供调用分析器的主程序模块之外,还提供语义(semantic )模块在文法之中调用(如,符号表处理和代码生成器),可以直接在grammer 内写语意动作。 阅读全文

posted @ 2006-12-15 21:58 Riceball LEE 阅读(4474) 评论(4) 推荐(0)