programme

The third Interpreter implementing Proc

Scheme解释器的好处是可以不断的拓展自己语言的能力, 通过The First-interpreter-from-eopl创建了一个较为简单let-language,实现了较为简单的减法运算和let局部变量赋值等功能。 The Second Interpreter from on第一次扩展了基础的let-language,实现了四则运算,逻辑判断,列表操作,列表赋值等。 这个版本的解释器进一步拓展了过程定义和过程调用的功能。
… 阅读全文>>

The Second Interpreter from One

在[First Interpreter From EOPL][1]中我们定义了一个最为基本的解释器,包含解释以下解释部分 const-exp diff-exp zero?-exp if-exp var-exp let-exp 这六种是比较基础的形式,在此基础上我们可以增加四则运算,加入list操作,加入逻辑比较
… 阅读全文>>

Ydiff单文件夹的所有scm文件比较

关于YDIff处理已经在[使用Ydiff工具生成文件差异比较文件][1]中提及,但是只是比较了两个文件夹之间的文件, 而如果是较为简单的单个文件的所有文件的比较?类似思路如下所示,
… 阅读全文>>

Some notations in the design of the language

What does it mean by Kleene star? What can it be used for? It is not so important,but a good tools to record the grammer of the language.目的就是如何更简洁地定义语法。
… 阅读全文>>

First Interpreter from EOPL

这是EOPL一个最为基本的解释器,后面的解释器都在此基础上进行改造,所以 得理解各个部分,并知道如何使用和改造。最终告诉的是解释器如何解释表达式(每一种语言的表达式)。 解释器解释表达式的问题。
… 阅读全文>>

Chicago really only has 7 characters?

我在听SICP的优酷视频时,听到“芝加哥也可以说是具有7个字符,同时他也可以表述为美国的中西部伊利诺伊州的全美第三大国际大都市”. 它可以仅仅表示语言的表面意思,也可以表示语言中的隐含意思。这体现了语言实现的一种魅力,Chicago really only has 7 characters?
… 阅读全文>>

cases的作用

为什么要实现cases,目的在于进一步抽象简化过程。
… 阅读全文>>

通过Scheme读取文件

通过IO monad的open-input-file 读取文件 通过read-line 读取接口文件 通过name-loop命名loop来循环读取文件。
… 阅读全文>>

使用Ydiff工具生成文件差异比较文件

Ydiff是一个不错的lisp语法分析工具(王垠编制).下面是该工具简单用途和使用说明。
… 阅读全文>>

The implementation of define-datatype

设计一个语言很重要的一点就是有一个工具来创建接口,define-datatype和cases就是这种工具
… 阅读全文>>