使用Scheme编程语言项目

时间:2009-06-05 14:36:40

标签: programming-languages project

我对使用scheme进行编程语言项目很感兴趣。我考虑过的一对夫妇 -

  1. Scheme中的方案扩展解释器(metacircular) - 问题是很多这些已经存在并且它不是太具有挑战性。

  2. 实施特定于域的语言。这个很好,但我不能想到任何可以从DSL中受益的领域。你知道任何?

  3. 一些有关更多想法的帮助?

    感谢。

3 个答案:

答案 0 :(得分:3)

特定于域的语言的问题在于,为了使其成为有用的语言,您需要具备该领域的知识,并且需要将该知识封装成易于重复使用的形式。

例如,我的一个爱好是计算与合约桥牌游戏相关的概率; DSL允许我以一种方便的形式指定关于一个这样的计算的约束,这对于熟悉游戏的人来说是非常易读的(它基本上读起来像“如果North至少有5个黑桃和更多的黑桃而不是心脏,那么锹长度的概率分布是什么?在南方手“等”。正如我做了很多这样的计算,动机也在那里。

但是,其他人(不知道您对哪些域名有所了解和兴趣)很难为您提供建议 - 如果他们这样做,那么获取知识,经验和动力可能不值得您花时间那个特定的域,需要为它做一个好的DSL。

所以,除非有一些域认为有趣且有价值,@ Nathaniel关于做一些其他通用语言的建议可能是一个更好的主意!

答案 1 :(得分:2)

如果您不想进行元气评估,您可能想尝试在Sccheme中为另一种语言编写解释器。我在一个类项目的方案中编写了一个ML解释器,它们比Scheme实现更具挑战性,因为它们并不总是共享语义。

答案 2 :(得分:1)

您可以查看Scheme SRFIs以获取其他Schemer希望实现的Scheme项目列表。也许这会给你一些想法。