Perl是编译或解释的编程语言吗?

前端之家收集整理的这篇文章主要介绍了Perl是编译或解释的编程语言吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是Perl编译还是解释?

解决方法

那么这取决于编译语言的意思。也许这就是为什么谷歌搜索并没有给你一个明确的答案你的问题。

一个观点是编译意味着从源代码描述到另一个编译,即code generation

如果我们接受这些处理,那么可以编译Perl 6,Perl 5和更早版本是解释语言。

Perl 6专门编译为Parrot bytecode.因此,Perl 6是一个正确编译的语言,与Java is相同。

Perl 5及更早的解析器将Perl源代码解析为内部列表或树,但我认为除了理论上可能不应该称之为正确的编译器。它不输出通常与编译器相关联的任何字节码,程序集或实际机器代码。 Perl的解析阶段检查Perl语法以前被称为“编译”源。它用于检查Perl源文件的语法有效性,而不运行它。

它被调用为:

perl -c myprog.pl

但是,如果您查看Perl选项的帮助,-c实际上代表“检查”。

-c                check Syntax only (runs BEGIN and CHECK blocks)

(为了进一步使事情变得复杂,Perl 5支持写入内部字节码,但是是removed in version 5.10.推测是因为它是错误的,我不知道。)

另一方面,如果您认为编译是将源代码树解析为任何其他类型的表示,那么解析使Perl成为一种编译语言。 Perl必须完全解析源文件才能开始执行它。通过该定义,任何可以在解析之前立即开始执行源文件的语言将是解释语言。

第三种方式是从这个领域的专业人士常常使用这些词语“解释”和“编译”。我会打赌好钱,如果在考虑Perl时要求程序员随机选择“编译”或“解释”,大多数选择“解释”。不是因为一些关于Perl性质的理论论据,而是因为“编译”通常会引用“编译”,“链接”,“目标代码”等的思想,而“解释”则被认为是“编写代码” ”。对或错,当尝试确定Perl是否真的被解释或实际编译时,这可能很好。你将在你的任务中遇到很多争论。

猜你在找的Perl相关文章