随笔-64  评论-378  文章-0  trackbacks-0
  2008年5月21日
     摘要: 这篇短文的Idea来源于一篇论文。这篇论文的题目是Higier-Order Functions for Parsing,Graham Hutton写的。论文中使用了一种叫Miranda的函数式语言来讲述如何使用高阶函数开发语法分析器。

高阶函数很多语言都支持,譬如JavaScript啊,C#的lambda expression啊,或者是我自己做的语言Vczh Free Script 2.0。不过Miranda是惰性计算的语言,我们常用的语言都不具有惰性计算的特性。因此我阅读了这篇文章之后,自己用Vczh Free Script 2.0写了一个等价的小规模的语法分析器。结构跟论文中所提到的那个有所区别,不过相同的经验可以直接应用在JavaScript里面或其它语言(例如Python等)的lambda expression里。C#我不知道行不行,没去考证。

这里首先要解决一个问题,就是如何引用没被定义的名字的问题。譬如如下文法:

Term= | "(" Exp ")"
Fa  阅读全文
posted @ 2008-05-21 16:57 陈梓瀚(vczh) 阅读(1279) | 评论 (4)编辑 收藏