5
基本语言的基本功能?DSL建议?
我终于开始理解创建解释器和编译器背后的复杂性。在达到这一点之前,我已经构建了TinyBasic,1964(Dartmouth)Basic的多个版本,并对这些语言进行了自己的扩展。最近的项目是一个我称为Open Source Basic的项目,因为我认为该语言没有其他会引起人们兴趣的功能。为了能够打开语言的源代码并了解如何完成某些复杂的事情(如何完成扫描,解析,解释和编译) 首先将Open Source Basic解释为基于堆栈的语言。然后,将基于该堆栈的语言立即进行解释和执行,或者将其转换为CLR可执行文件。 我的问题全部归结为: 基于Basic的语言的基本特征/构造是什么?我已经有了这些基本构造:赋值,表达式,变量,一些函数(Random,ToUpper,ToLower),循环(for和do-while / until),If(块和单行)其他决策,基于控制台的输入(输入),输出(打印)和子例程(尚无参数)。 当我“完成”将基本结构添加到我的语言中时,应该如何分支?进入哪个域?换句话说,一旦我使所有通用构造都起作用,我的开源基础语言应该朝哪个方向发展? 感谢您的时间, 多米尼克