首页 > 解决方案 > 有没有不是用 c++、rust 或 ada 编写的语言?

问题描述

我目前正在开发一种编程语言,我使用 golang 作为主要编程语言。

它似乎并不比python慢​​多少。我只是想知道我是否在浪费时间编写语言?有没有人写过任何将 golang 作为基础语言的编程语言?

我听说最快的语言是 c、c++、rust 和 ada。我还听说 go 很快,但不如 c++ 快。什么(半流行)语言是用 go 或任何其他非超快速编程语言编写的。

标签: oopgo

解决方案


你可以在编写基于 Go 的语言时查看这本书:Writing An Interpreter In Go。它还有一个续集,用 Go 编写编译器

它展示了一种叫做猴子的玩具语言的发展,虽然猴子没有在生产中使用,但这本书很好地展示了基础知识。你可以在他们的网站上阅读更多关于它的信息。

Alexander Medvednikov正在开发一种特殊的语言,即vlang。Vlang 旨在成为一种生产就绪的语言,所以也请检查一下。Vlang 最初是在 Go 中开发的,但现在它的编译器是在 vlang 中,这是自举的另一个例子。

如果你算上特定领域的语言,你可以说 Dockerfile 格式也是用 Go 编写的,因为 docker daemon 是用 Go 编写的,它必须解析 Dockerfile。

好吧,Golang 也是用 Golang 编写的。该语言在 1.4 版之前有一个 C 编译器,但他们用 Golang 重写了他们的编译器,用旧的 C 编译器编译它,并从上述版本开始使用他们的 Golang 编译器。这就是所谓的引导,在开发新语言时是一种流行的方式。

如果我是对的,编译器编写的语言只会影响语言的编译时间,而运行时速度会受到您对编译器本身的优化的影响。(假设你有一种编译语言)。

对于您似乎拥有的解释性语言,因为您将自己的语言与 python 进行比较,Golang 可能比 C++ 慢,但请记住,如果您可以很好地优化这两种语言,情况就是如此。(这是一件很难做到的事情)

我认为,用 Go 开发一门语言并不是浪费时间。它比 C++ 更容易开发(同样,我认为),因此您可以在开发自己语言的语义时快速迭代。如果你最终需要比 Go 提供的速度快得多,这对你有好处,这意味着你的语言现在很流行,并且语法稳定,你可以考虑用 Rust 或 C 重写它。在此之前,Go 应该没问题.


推荐阅读