欢迎光临
我们一直在努力

Parrot 常见问题-CGI教程,CGI文档

建站超值云服务器,限时71元/月

////////////////////
//一般性问题//
////////////////////
#什么是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汇编代码编程?
很多的原因:
*所有的人都在这么做
*its 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, 和68×00(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代码的方式吗?
或许

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Parrot 常见问题-CGI教程,CGI文档
分享到: 更多 (0)