确定自定义语言的类型

时间:2011-08-03 16:13:17

标签: compiler-construction programming-languages functional-programming interpreter imperative-languages

我正在考虑专门针对图形的小语言,这些图形将提供操作图形等的许多功能。

因此,当我在思考语言的语法时,我会阅读有关功能性和“明显”命令式范例的内容。如何决定哪种语言风格会更好?哪一个适合我的用例更好?我会很感激答案,并提供一些很好的理由和解释。

编辑: 至于这种语言的受众:我相信没有任何编程经验的非程序员/研究人员仍然能够使用图表将从中受益。

编辑: 如果您觉得这个问题没有用,那么您可以对其进行投票,但请添加评论,说明为什么您觉得它值得。这可能有助于我走很长的路。

2 个答案:

答案 0 :(得分:1)

IMO当你尝试设计一些简单的语言时,你通常会知道谁会使用它以及它会做什么。然后,首先尝试“使用它”,考虑一下它的写作方式。不要考虑范式和那些东西 - 当你的语言变大时你会开始担心它 - 但也许它不会:)它可以作为一个简单的交互式shell结束,具有类似基本的数学语法。

答案 1 :(得分:1)

对于你的大部分问题都不是真正的答案,但我设计了一些玩具语言(并考虑过一些非玩具语言)。我觉得考虑我期望在语言中完成的各种事情是有帮助的,然后在设计之前尝试实际编写一些示例程序,看看这些概念是如何产生的。

很难不被卷入无关的细节,例如需要括号,确切地指示结构,如何声明变量和类型(如果你这样做)等等。你对语法并不感兴趣这个阶段(当你编写示例程序时有点奇怪),所以它更接近伪代码。但它可以帮助巩固您需要的原语,您的语言用户将要考虑的概念是什么。

如果你仍然在权衡基本选择,比如命令性和功能性,那么尝试用几种不同的方式。例如,您的语言需要提供哪些构建块来以命令式样式编写图形转换?功能风格怎么样?这样做可以帮助您了解每种方法的效果,每种方法需要解决的问题,等等。