programming-languages之编程语言设计
我创建了一种编程语言并在我的计算机中编写了它。这是我为了好玩而创建的一种实验性非专业编程语言。
一门语言需要最重要的东西,一个编译器。
将源代码转换为C/++并调用GCC是个好主意吗?
我的语言看起来像 C++ 和 Java,如果没有解析器,转换也不难。
我的目标不是优化任何东西,也不是为每个平台生成二进制文件。如果我生成 C 源代码,我可以为许多平台编译它并使用 GCC 优化。
我不知道可以帮助我的工具,我知道名称的一些工具是 yacc 和 llvm,但我不知道它们如何帮助我。
fun第一部分是编程语言的设计,第二部分是runtime细节的实现。我认为解析器实现不是很有趣。
谢谢
请您参考如下方法:
为了对抗 Mehrdad,将您的语言转换为 C 是一个好主意。许多语言编译器编译为 C,将其用作“可移植程序集”。现在,为 GCC 创建一个前端是一个好主意,但它在初始复杂性方面提高了标准。创建 C 代码比 GCC 的前端要简单得多。
或者,就此而言,将其转换为您认为合适的目标语言,无论您喜欢什么。例如,我编写了创建 Java 代码的编译器。
你的语言中的语法部分可能不是很有趣,但它可能是你的第一个挫折点。因此,明智的做法是稍微注意其他语言的功能,并查看它们的语法。如果您认为您的语言可以使用它,请考虑一些简单的 Pascal 递归解析器。或者查找 Yacc 和 ANTLR 语法。
大多数人最初觉得令人沮丧的只是表达方式。
a + b * ( c - sqrt(12 / 4) + sin(30))
许多人在使用表达式时遇到问题。在您获得表达式工作后,其余的就可以轻松到位(假设您正在使用类似 Algol/C 的语言与其他一些语法风格)。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。