Perl被认为是通用编程语言吗?Perl提供的其他语言不支持哪些编译时功能?
Perl的阅读有关它具有图灵完全语法解析,因为可通过在编译阶段执行的运行时代码的影响。[41]因此,Perl不能由直接的Lex/Yacc词法分析器/解析器组合来分析。相反,解释器实现自己的词法分析器,它与修改过的GNU野牛分析器进行协调,以解决语言中的歧义问题。
通常会说“只有perl可以解析Perl”,这意味着只有Perl解释器(perl)才能解析Perl语言(Perl),但即使这样也不是真的。由于Perl解释器可以在其编译阶段模拟图灵机,因此需要确定停机问题以便在每种情况下完成解析。这是一个长期以来的结果,暂停问题是不可判定的,因此甚至连perl都不能解析Perl。 Perl使得用户可以在自己的编译阶段访问其完整的编程能力。理论纯度方面的成本很高,但实际的不便似乎很少见。
所以,它说,虽然Perl有图灵完整的徽章,它与其他语言不同,因为给了“在自己的编译阶段,以充分发挥其编程能力的用户访问”。那是什么意思? Perl在编译阶段为我提供了哪些编程能力?
社区Wiki? – fredley 2010-08-26 13:39:34
这是一个非主观答案的恰当问题。 – muhmuhten 2010-08-26 13:42:54
这个维基百科条目需要编辑。即使编译完成,编译器也不需要在编译过程中“决定”暂停问题。这是循环逻辑。 – dawg 2010-08-26 13:49:08