1

我有兴趣使用方案做一个编程语言项目。我考虑过的一对——

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

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

对更多想法有帮助吗?

谢谢。

4

3 回答 3

3

特定领域语言的问题在于,要制作出有用的语言,您需要对该领域有很好的了解,并有动力将这些知识封装成方便重用的形式。

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

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

因此,除非认为某些领域很有趣且有价值,否则@Nathaniel 关于使用其他通用语言的建议可能是一个更好的主意!

于 2009-06-05T15:08:16.140 回答
2

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

于 2009-06-05T14:53:29.087 回答
1

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

于 2009-06-05T21:58:40.140 回答