programming-languages之编程语言设计

qlqwjy 阅读:96 2024-08-21 16:07:20 评论:0

我创建了一种编程语言并在我的计算机中编写了它。这是我为了好玩而创建的一种实验性非专业编程语言。

一门语言需要最重要的东西,一个编译器。

将源代码转换为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.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号