Stratego编程语言的理论限制是什么?


10

Stratego是一种编程转换语言/重写DSL。

Anthony Sloane已经完成了一些在Scala上运行实现的工作

Stratego作为功能语言的理论限制是什么?(不考虑实现)。有人可以在Stratego中写一个适用的命令复合器吗?


一个非常有趣的问题。
戴夫·克拉克

您是否真的要链接到同一篇论文的两个琐碎的变体?
兰德尔·舒尔茨

这个问题的改进:与宏技术相比,通过这种方式扩展编程语言有什么优点和缺点?
查尔斯·斯图尔特

Answers:


6

尽管我没有具体的程序供您尝试,但我将给出答案。在一个Eelco Visser 博客条目中,您可以看到一个屏幕快照,其中实质上包含用Stratego编码的lambda演算(我确定此代码可在其他地方获得)。他为Stratego的lambda演算提供了解释器。据推测,这足以表明Stratego是图灵完备的。

如果您对一个更具体的表达概念感兴趣,那么我建议您改一下您的问题。

在实际使用方面,我发现Stratego的主要局限性在于它只能对一种数据结构(即要转换的树)进行操作。使用其他数据结构(例如符号表)是不自然的(至少在5年前的Stratego中如此)。尽管Stratego非常适合在一棵树上进行转换,但同时对两棵树执行操作并不容易。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.