【问题标题】:Custom PHP interpretor? [closed]自定义 PHP 解释器? [关闭]
【发布时间】:2011-03-17 23:34:25
【问题描述】:

与某些语言相比,PHP 的语法有点长(例如,在 java 中调用对象的方法是用句点 (.) 而不是 phps (->) 完成的)。

我一直想编写自己的语言,但我只是一年级的本科生,而且我的知识还不足以编写一个解析器来将某些东西转换为 Java VM 的字节码或其他东西。

因此,我正在考虑用 PHP 编写一个解析器,将我的语法转换为 PHP 代码,然后使用正则表达式和其他东西运行它。

原因如下: PHP 是一种稳定的网站语言(我的语法将适合 Web 开发人员) 我已经在专业水平上了解 PHP(或者至少我认为我知道) 我已经看到了类似的实现:http://tetraboy.com/lolcode/lol_core.phps 这会将 LolCode 转换为 PHP。我知道这只是个玩笑,但它仍然完成了

所以既然我有证据证明这是可能的。 我的问题是: 我真的可以制作一些可以用于未来项目的东西吗?例如我可以让它和 PHP 一样快或几乎一样快吗?

我将尝试任何一种方式,只是为了更多地了解 PHP 以及语言是如何组合在一起的,但我想知道我是否真的可以将最终结果变成值得一试的东西该死的。

【问题讨论】:

  • 看过无数的php框架?
  • 您的一些想法听起来像是您应该研究 pihipi 或 phpreboot、haxe 或失败的 php on parrot 实现。你的我能不能完成这个问题部分有点无法回答。只是说技术上可行。
  • 也许你可以用 PHP 写一个 PHP 解释器!
  • 我真的很想知道“性能方面”是否可行。我敢肯定,这听起来很可靠?
  • @FrankyChanyau 五年过去了。你花了多长时间才意识到这是一个噩梦般的想法?或者您最终是否在 PHP 中编写了相当于 PHP 转译器的内容?这是一个噩梦般的想法。希望你活下来。

标签: php syntax transpiler


【解决方案1】:

如果有的话,这是一个非常有趣的学习项目。

还有其他人对其他语言有相同的想法。例如,看一下CoffeeScript,它基本上是相同的想法,但用于 Javascript。

您可以完成这项工作,但您必须考虑转换过程。如果您正在寻找性能,您不希望在每个请求上都实时完成。因为添加复杂层只会减慢您的代码速度。哪怕只是一点点。为了弥补这一点,CoffeeScript 提供了一个用于预编译的命令行“编译器”,但也允许延迟加载情况——这非常适合开发目的。这样的设置也可能对您有用。

您需要查看 PHP_LexerGeneratorPHP_ParserGenerator 来实现您的解析器。即使后者不再维护:)

祝你好运! ;)

【讨论】:

  • 哇,非常感谢。这正是我想知道的。 (顺便说一句:你是男人)
猜你喜欢
  • 1970-01-01
  • 2020-07-19
  • 2011-03-31
  • 2012-04-14
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多