gpt4 book ai didi

programming-languages - 如何着手制作自己的编程语言?

转载 作者:行者123 更新时间:2023-12-03 08:39:52 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




11年前关闭。




Possible Duplicate:
Learning to write a compiler



我四处寻找有关编程语言开发的更多信息,但在网上找不到很多。我找到了一些教程视频,但对于文本指南、常见问题解答、建议等内容并不多。我真的很好奇如何构建自己的编程语言。它让我问:

您如何着手制作自己的编程语言?

我想建立一种非常基础的语言。我不打算拥有一门非常好的语言,我也不认为它会被任何人使用。我只是想制作自己的语言来学习更多关于操作系统、编程的知识,并在所有方面变得更好。

从哪里开始?构建语法?构建编译器?需要什么技能?大量的组装和操作系统的理解?大多数编译器和语言都内置了哪些语言?我假设 C.

最佳答案

我想说,在你开始之前,你可能想看看 Dragon Book和/或 Programming Language Pragmatics .这将使您深入了解编程语言的理论。这些书涵盖了编译和解释,并使您能够构建制作基本编程语言所需的所有工具。

我不知道你知道多少汇编语言,但除非你对汇编语言编程的某些方言相当熟悉,否则我建议你不要尝试编写一个编译成汇编代码的编译器,因为它相当多一个挑战。您之前提到您熟悉 C 和 C++,因此也许您可以编写一个编译器,将其编译为 C 或 C++,然后使用 gcc/g++ 或任何其他 C/C++ 编译器将代码转换为 native 可执行文件。这就是 Vala编程语言可以(它将 Vala 语法转换为使用 GObject 库的 C 代码)。

至于你可以用什么来编写编译器,你有很多选择。您可以用 C 或 C++ 手动编写它,或者为了简化开发,您可以使用更高级别的语言,这样您就可以专注于编译器的编写,而不是内存分配以及处理字符串所需的内容在 C.

您可以简单地生成语法并拥有 FlexBison生成解析器和词法分析器。这非常有用,因为它允许您进行迭代开发以快速获得工作编译器。

另一个选择是使用 ANTLR要生成您的解析器,这样做的好处是您可以获得许多 ANTLR 可以编译成的目标语言。我从来没有用过这个,但我听说过很多。

此外,如果您想更好地了解在编程语言编译器/扫描器/解析器构造中如此频繁使用的模型,您应该获得一本关于计算模型的书。我会推荐 Introduction to the Theory of Computation .

您似乎还表现出对了解操作系统的兴趣。我会说这是与编程语言设计分开的东西,应该单独进行。本书Principles of Modern Operating Systems是一个很好的学习起点。你可以从小项目开始,比如创建一个 shell,或者编写一个模拟 ls 命令的程序,然后进入更底层的事情,这取决于你对 C 中的系统调用的了解程度。

我希望这对你有帮助。

编辑:自从我写下这个答案以来,我学到了很多东西。我正在服用online course on programming languages当我在那里看到这个答案时,布朗大学正在提供。教授非常正确地指出,这个答案很多关于解析器的内容,但对其他所有内容都很轻。如果您想更好地了解如何创建编程语言,我真的建议您阅读类(class)视频和练习。

关于programming-languages - 如何着手制作自己的编程语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3810119/

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