gpt4 book ai didi

programming-languages - 编程语言设计

转载 作者:行者123 更新时间:2023-12-01 09:37:13 24 4
gpt4 key购买 nike

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

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

将源代码转换为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 的语言与其他一些语法风格)。

关于programming-languages - 编程语言设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5546076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com