国外大牛,正常疯狂的尝试把PHP代码,编译成Rust,然后你就可以编译为原生可移植性应用程序了。
你们中的一些人可能已经知道我一直在用 Rust 编写一个手写的 PHP 解析器。该项目称为Trunk( GitHub 上的源代码)。
在撰写这篇博文时,我已经在解析器上工作了几个星期,并且已经取得了长足的进步。它能够解析函数、类、接口等等。它距离成为与 Nikita 的nikic/php-parser包相当的兼容 PHP 解析器还有很长的路要走,但到目前为止,这段旅程很有趣,令人惊讶的是,通过解析一种语言的语法,您可以发现许多奇怪的事情。
由于解析器现在能够处理一些基本程序,因此我认为值得一试,看看 API 是什么样的并寻求改进。Dogfooding,如果你想要一个词。
我最初的计划是为该语言开发一个实验性的运行时和解释器。这是一项艰巨的任务,此时新的运行时几乎没有什么好处。
相反,我开始考虑 PHP 的编译器。在执行时间 (AOT) 之前运行的东西。我的朋友Tim Morgan是Natalie的创建者,它是一种 Ruby 语言的实现,可以编译成 C++,然后编译成本地 二进制 文件。在过去一年左右的时间里,我为 Natalie 做出了一些贡献,这确实鼓舞了 Tim 所做的工作。
您可能会看到这是怎么回事…
受到 Tim 在 Natalie 上的工作的启发,我将开始一个实验,我将使用我的手写 PHP 解析器并尝试编写一个编译器,将 PHP 代码转换为 Rust,然后使用rustc编译就行了。
海报
0 条评论
111
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~