2009-06-05 45 views
1

我对使用方案编程语言项目感兴趣。我已经考虑一对夫妇 -编程语言项目使用方案

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

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

一些帮助更多的想法?

谢谢。

回答

2

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

+0

确实如此,如果为方案以外的其他语言提供口译服务将更具挑战性。 – Pranav 2009-06-05 14:59:06

3

特定于领域的语言的问题在于,要做出有用的特定语言,您需要对该领域具有丰富的知识,并且有动机将该知识封装为可重复使用的形式。

例如,我的兴趣之一是与合同桥的游戏有关的计算概率; DSL让我能够以便利的形式指定一个这样的计算的约束条件,这对于熟悉游戏的人来说是非常易读的(它基本上是这样写的:“如果North与黑桃相比至少有5个黑桃和更多的黑桃,黑桃长度的概率分布是多少在南手“等)。正如我做了很多这样的计算,动机也在那里。

然而,其他人(不知道你有什么知识和兴趣的领域)很难为你提供他们的建议 - 如果他们这样做了,那么获得知识,经验和动机可能不值得在那个特定的领域,需要为它做一个好的DSL。

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

1

您可以查看Scheme SRFIs,了解其他Schemers希望实施的Scheme项目列表。也许这会给你一些想法。