我有兴趣使用方案做一个编程语言项目。我考虑过的一对——
Scheme(metacircular) 中的一个方案扩展解释器 - 问题是其中很多已经存在并且它不是太具有挑战性。
实现特定领域的语言。这个很好,但我想不出任何可以从 DSL 中受益的领域。你知道任何?
对更多想法有帮助吗?
谢谢。
我有兴趣使用方案做一个编程语言项目。我考虑过的一对——
Scheme(metacircular) 中的一个方案扩展解释器 - 问题是其中很多已经存在并且它不是太具有挑战性。
实现特定领域的语言。这个很好,但我想不出任何可以从 DSL 中受益的领域。你知道任何?
对更多想法有帮助吗?
谢谢。
特定领域语言的问题在于,要制作出有用的语言,您需要对该领域有很好的了解,并有动力将这些知识封装成方便重用的形式。
例如,我的爱好之一是计算与合约桥牌游戏相关的概率;一个 DSL 让我以一种方便的形式指定这种计算的约束,这对于熟悉游戏的人来说是非常易读的(它基本上读起来像“如果 North 有至少 5 个黑桃并且比红桃多,那么黑桃长度的概率分布是多少?在南手”等)。当我做了很多这样的计算时,动机也在那里。
但是,其他人(不知道您对哪些领域有知识和兴趣)很难向您提供他们的建议——如果他们这样做了,那么您可能不值得花时间去获得该特定领域的知识、经验和动力,需要为它做一个好的DSL。
因此,除非您认为某些领域很有趣且有价值,否则@Nathaniel 关于使用其他通用语言的建议可能是一个更好的主意!
如果您不想做元循环评估器,您可能想尝试在 Sccheme 中为另一种语言编写解释器。我在一个类项目的方案中编写了一个 ML 解释器,它们比方案实现更具挑战性,因为它们并不总是共享语义。
您可以查看Scheme SRFI以获取其他 Schemers 希望看到的 Scheme 项目列表。也许这会给你一些想法。