Parrot 常见问题_cgi技术_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Parrot 常见问题

作者:黑客防线网安网站维护基地 来源:黑客防线网安网站维护基地 浏览次数:0

本篇关键词:Parrot

////////////////////
//一般性问题//
////////////////////
#什么是Parrot?
Parrot是为支持Perl6语言而新设计的解释器它被设计成一种独立的虚拟机可以用来执行从Perl5,Perl6等动态语(dynamic languages)编译成的字节码理想中Parrot能够支持其他的动态,被编译成字节码(bytecode-compiled)的语言,如Python, Ruby和Tcl。

#为什么叫Parrot?
Parrot来源于Simon Cozens的愚人节玩笑,说的是Larry Wall和Guido van Rossum宣布Perl和Python将合并。

#Parrot就是Perl6吗?
否!Parrot是用来执行Perl6程序的。Perl6语言的定义正在被Larry Wall加工。Perl6的真正状态仍然是一个迷,她会和今天我们看到的Perl充分的相似,以及需要一个运行时系统。

#今天我能够使用Parrot吗?
当然!Parrot正处于她执行的早期阶段。使用Parrot最主要的方式是去写Parrot的汇编代码。你可以在Apache中使用Ask Bjorn Hansen的mod_parrot模块来建立动态内容(dynamic content)。不过千万不要用于产品的代码中,那只是一个玩具。

#为什么我要用Parrot汇编代码编程
很多的原因:
*所有的人都在这么做
*It's a neat hack.
*你能够享受是用汇编编程的乐趣而不必担心系统的崩溃
严肃的说,使用Parrot汇编语言是一种充满乐趣的挑战,同时也是用来测试Parrot的最好的方式。

#什么时候才能通过一种“真正”的编程语言来使用Parrot?
这要看你是怎么看“真正”这个词了。
*Leon Brocard发布了一个Java字节码到Parrot字节码的编器。
*Gregor Purdy正在进行一种能够直接面对Parrot字节码的小语言Jako的方面的工作。
*Dan Sugalski和Jeff Goff已经开始了将Scheme编译成Perl 字节码方面的工作。

#Parrot是用什么语言写的?
C.

#Why not write it in insert favorite language here?(不晓得如何翻译insert favorite language)
Becuase of one of :
*Not available everywhere.
*Limited talent pool for core programmers.
*Not fast enough

#你为什么不使用外部工具或者X库(library X)?
*许可证兼容性(License compatibility)
Parrot有着一个古怪的许可证--她目前正在使用和Perl5同样的许可证,这种许可证是GNU GPL和Artistic 许可证的分离,可以简写成Artistic | GPL。因此,Parrot的许可证和GNU GPL兼容,这意味着你可以把Parrot同GPL代码相结合。
能够进入核心解释器的代码必须归入与Parrot一致的条款。我们连接进入解释器的库代码(比如,用于Unicode的ICU库)能够被其他的许可证代替,只要他们自己的条款不禁止这样做。
*平台兼容性
Parrot必须工作在所有的Perl5的平台上,以及少数特别的平台。Perl5可以在80个平台上运行;Parrot必须在Unix, Windows, Mac OS(X and Classic), VMS, Crays, Windows CE, and Palm OS等等。而她的处理器的构架将会是x86, SPARC, Alpha, IA-64, ARM, 和68x00(Palms and old Macs).如果某些东西不能在其中的一个平台/操作系统中工作,我们就无法在Parrot中使用它。
*速度,大小和适应性
Parrot不仅应该能够,而且应该是高效的在这些平台上工作。根据不同编译器,Parrot的核心大小是在250K到700K之间。这样她就能够在掌上系统上运行了。任何Parrot使用的库必须足够快,几乎不存在性能的冲突;必须足够小,几乎不存在核心大小上的冲突;足够强的适应性,能够处理如Perl, Python, Tcl, Ruby, Scheme等的各种要求。

#为什么用你们自己的虚拟机,而不是编译成JVM/.NET?
那些虚拟机针对静态类型语言的(statically typed languages)。比如Java, C# 和许多其他的语言都是静态类型语言,而Perl不是。由于各种各样的原因,意味着Perl若要是在那些虚拟机上运行会慢的多,所以针对Perl这样的动态语言(dynamic language)我们设计了专门的解释器。

#那么,你们不能在JVM/.NET上运行了?
当然不是。他们不是我们的第一目标。我们首先建立自己的解释器/虚拟机,然后才会开展基于JVM,.NET的工作。

///////////////////////////////////
//PARROT AND PERL//
//////////////////////////////////
#为什么重新实现Perl?(Why re-implement Perl)
好问题!
在2000年夏天,Larry wall宣布是到了从新开始建立Perl的时候了,这包括Perl语言,语言的执行,那些志愿去实现和维护语言的源码社区的开发者,以及更大的使用Perl的程序员社区。
很多的原因促使我们开展的这个计划:
*Perl5是一个稳定的,可靠的,健壮的开发平台;她还很年轻,到Perl6正式发布的以后。(证据:Perl4依然坚强的活着,而其实我们都想让她消失)
*若有需要,我们有将Perl5转化成Perl6的能力。这保留了向后的兼容性。
*语言有修改的必要(The lauguage can stand some revision):格式并不属于核心语言, typeglobs have outlived their unsefulness。通过修改语言,我们能使Perl更好。
*一些瑕疵应该被除去:一旦成功,系统应该返回TRUE来代替FALSE,localtime应该返回year 而不是 year-1900。
*用Perl代替C来写Perl编译器是一件非常好的事情.

#你想用Perl来写Perl编译器?
当然!C, Java, Lisp, Scheme……实际上所有的其他的语言都是self-hoisting 的!

#Parrot如何一起处理Perl5和Perl6?
我们还不清楚,这将依赖于Perl6语言的定义。但是,我们或许会根据编译的是Perl5还是Perl6来选择使用两个不同的Perl编译器。Larry曾经说过或许会使用一个package statement来声明该文件是Perl5,但具体怎么做,我们也不清楚。

#这将是Parrot运行Python, Ruby和Tcl代码的方式吗?
或许

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-145-1.html
网站维护教程更新时间:2008-02-20 05:55:27  【打印此页】  【关闭
上一篇:Perl6的结构
下一篇:CGI安装配置图解
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer