好吧,我想这个问题在这里已经被问了很多次了。
我想创建一种编程语言,不一定要从今天开始,但要花2-3年的时间。我不是一个很好的程序员,但我正在进步。我想问的是,创建一种语言和编写编译器的关系有多密切?
因为编译器将一种语言从一种形式翻译成另一种形式,所以我猜这一切都是为了编写一段特定文本的编译器。那么,如果我学习编译器设计,我将能够编写自己的编程语言吗?
发布于 2010-09-11 19:18:13
您可以在不了解实现编译器的情况下设计一种编程语言,反之亦然。语言设计人员可以为该语言编写规范,然后编译器实现者可以使用该规范并创建编译器。
但是,如果这是一个个人项目,那么您可能需要同时学习如何做到这两点。一种没有编译器的编程语言纯粹是理论上的,如果不用它来编写和执行真正的程序,就很难弄清楚一种编程语言有多好。即使你确实找到了愿意为你实现编译器的人,你可能也不想每次有新想法要尝试的时候都要等待那个人,所以你会想知道如何自己去做。
实现一个编译器是一个非常高级的编程项目,所以如果你刚开始成为一个程序员,你将面临一个陡峭的学习曲线。您可能希望从查看LLVM的教程和示例开始,尽管这实际上可能不是适合您的语言的编译器基础设施。
发布于 2010-09-11 19:10:37
火影忍者,这取决于你想创造什么样的“语言”。如果它是一种简单的、仅用于学习的语言,并且您选择了语法等,那么您将不需要了解很多编程知识。但是,如果你要处理一个严肃的问题,你将不得不深入研究至少一种计算机编程语言,不仅要使用它,而且要尝试理解它的几个概念,例如,OO、泛型、lambda表达式等。
相信我,这不是几个月的任务,而是一段严肃的旅程。无论如何,我祝你好运;)
发布于 2010-09-11 19:17:02
密切相关的。除非你有办法将它解释/编译成可执行的形式,否则你真的没有一门语言。
https://stackoverflow.com/questions/3690721
复制相似问题