随笔-341  评论-2670  文章-0  trackbacks-0
脚本技术
描述跟脚本相关的各种技术
手把手教你写脚本引擎(五)——简单的高级语言(3,符号表)      摘要: 符号表的结构的复杂度跟语言的语义规则的复杂度有关。对于C#来说,每一个符号都附带了一大堆信息,譬如位置啦,所在的namespace啦,类型啦什么的。对于JavaScript来说,符号表几乎是不需要的,因为东西都动态了,编译时几乎不检查内容。语义分析的输出是符号表,代码生成的输入是符号表和语法树。因此语法树除了放语法相关的内容,语义相关的内容最好放到符号表里面(譬如说表达式的类型啦,语句的scope结果啦)。  阅读全文
posted @ 2009-05-11 10:48 陈梓瀚(vczh) 阅读(6701) | 评论 (1)  编辑
手把手教你写脚本引擎 PPT与Demo(一)      摘要:
华南理工大学微软俱乐部程序设计语言特别兴趣小组——手把手教你写脚本引擎系列(一)
陈梓瀚

PPT内容:
1、简单指令集的设计方法(支持分支、循环、函数、递归)。
2、编译控制流程(分支和循环)的一般模式。
3、函数调用的详细过程。
4、5个示例程序。

Demo内容:
PPT中5个示例程序的运行过程(动画),左边是单步,右边是堆栈内容。

含下载,内详。  阅读全文
posted @ 2009-03-28 17:43 陈梓瀚(vczh) 阅读(9985) | 评论 (11)  编辑
Kernel FP的图形Demo实现!      摘要: 其实有了一整套的Kernel FP API之后,只需要插入几个外部函数就可以让Kernel FP绘图了。现在我们看一看这个Demo的样子。
  阅读全文
posted @ 2008-12-30 02:41 陈梓瀚(vczh) 阅读(2559) | 评论 (0)  编辑
Kernel FP编译器工具实现      摘要: 这次终于实现了两个exe,一个是编译器,一个是提供控制台API的虚拟机。等提供GUI的虚拟机出来之后就开放出来(内有图和代码)。  阅读全文
posted @ 2008-12-27 00:07 陈梓瀚(vczh) 阅读(1880) | 评论 (5)  编辑
Kernel FP 编译器MakeFile开发完成      摘要: Kernel FP的MakeFile可以指定输出文件、报告文件以及代码文件,并且可以继承其他的MakeFile。MakeFile的格式和分析器代码如下:  阅读全文
posted @ 2008-12-24 21:20 陈梓瀚(vczh) 阅读(1669) | 评论 (1)  编辑
Kernep FP实现虚拟机的序列化与反序列化      摘要: 由于Kernel FP的编译结果是独立的,执行的时候不需要源代码的符号的参与,因此可以将编译结果进行序列化与反序列化。  阅读全文
posted @ 2008-12-23 16:50 陈梓瀚(vczh) 阅读(1424) | 评论 (0)  编辑
Kernel FP添加反射API      摘要: 为了让宿主程序可以更加清楚一份Kernel FP代码的内容,我今天为Kernel FP添加了反射的API。  阅读全文
posted @ 2008-12-20 22:10 陈梓瀚(vczh) 阅读(1293) | 评论 (0)  编辑
使用Kernel FP的do-end语法糖添加自己的异常处理系统      摘要: 有的时候,IO的异常处理由于需要一个IOEnv类型的参数而显得非常麻烦。这个时候我们可以定制自己的一套异常处理系统,从而让程序变得清晰起来。自己的异常处理系统不同于IO,是没有副作用的函数集合。下面让我们看一看如何使用自定义的异常处理系统来分析一个四则运算表达式。  阅读全文
posted @ 2008-12-19 13:23 陈梓瀚(vczh) 阅读(1350) | 评论 (0)  编辑
使用Kernel FP API实现一个运行Kernel FP代码的控制台程序      摘要: 说到底Kernel FP是一个脚本引擎,所以是需要API的。接下来的代码用来加载一些Kernel FP代码文件,并执行main函数。  阅读全文
posted @ 2008-12-18 11:15 陈梓瀚(vczh) 阅读(1513) | 评论 (1)  编辑
在纯函数式语言内实现有关IO的循环      摘要: 我们知道,循环本身是没有返回值的。所以在纯函数式语言下,跟IO有关的循环才有足够的副作用来产生价值。于是利用IO Monad,我们就可以实现循环了。循环是一个函数:  阅读全文
posted @ 2008-12-15 23:56 陈梓瀚(vczh) 阅读(1963) | 评论 (2)  编辑
Kernel FP的do-end IO语法糖实现!      摘要: 前面说过,需要一个语法糖来组织IO,并且在其中的一步产生错误的时候立刻返回错误。现在我们看一段代码:  阅读全文
posted @ 2008-12-15 22:22 陈梓瀚(vczh) 阅读(1354) | 评论 (0)  编辑
Kernel FP的IO实验
posted @ 2008-12-15 14:44 陈梓瀚(vczh) 阅读(1624) | 评论 (0)  编辑
Kernel FP支持更精细的重载
posted @ 2008-12-15 11:42 陈梓瀚(vczh) 阅读(1377) | 评论 (0)  编辑
Kernel FP 的四则运算式子分析程序      摘要: 为了测试Kernel FP的健壮性以及进行一些bug的排除,一个四则运算式子的分析程序理所当然地就被实现了。代码如下:  阅读全文
posted @ 2008-12-13 23:13 陈梓瀚(vczh) 阅读(3185) | 评论 (2)  编辑

Full 脚本技术 Archive