Questions tagged «compiler»

编译器是一种计算机程序,可以将以一种编程语言编写的源代码转换为另一种计算机语言。

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

4
将X编译器写入Y中的Z的一般规则
假设X是输入语言,Z是输出语言,则f是使用语言Y编写的编译器。 f = X -> Z 由于f只是一个程序,我认为Y可以是任何语言,对吗?这样我们就可以得到分别以Y1,Y2编写的编译器f1,f2。 f1 = f Y1 f2 = f Y2 g = Z -> M h = g . f # We get a compiler X -> M 以cpython编译器为例,X是Python,Z是Python VM代码,Y是C。 cpython = Python -> PythonVMCode C interpreter = PythonVMCode -> Nothing interpreter2 = PythonVMCode -> …
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.