您的位置:首页 >> Web开发 >> CGI技术 >> 正文
CGI技术 RSS
 

Parrot 常见问题

http://www.rdxx.com 07年11月11日 22:03 我要投稿

关键词: 问题 , 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)我们设计了专
上一页 下一页

 
 
标签: 问题 , Parrot , 常见问题 打印本文
 
 
  相关资讯
RSS
 
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站