平特心水报图
新網絡營銷基礎與實踐

你的位置:首頁 >網絡營銷 >Perl6

Perl6

     Perl 6是計算機程序語言Perl語言的后續。盡管提供了同Perl 5的兼容模式,由于Perl 6語言語法同Perl 5不同,因此,可以把她看作一種新的計算機程序語言。

  Perl 6擁有豐富的現代語言特征,作者計劃用重新定義正規表達式和增加函數式編程語言的特征,使之成為可演化的語言。為保證Perl 6和Perl社區的持續穩定發展,Perl 6編譯器需要使用Perl 6來重寫,為保證Perl語言原有函式庫的重用,編譯器還計劃提供同Perl 5語言的兼容模式。

  由于Perl 6語言的語法特征和要求,Perl 6編譯器實現非常復雜,同時,開源社區的資源相對貧乏。因此,Perl 6編譯器的開發顯得相當緩慢。

  和Ruby比較:

  一般都是認為Ruby vs. Python(可能是因為同樣采取縮排的設計),但是就一些相關的討論和訪談,Ruby vs. Perl 6的可能性反而是最大的。CPAN上排名第一名,同時也是Perl 6的開發者的唐鳳(Audrey)就這么說過:“Ruby就是‘沒有到處打廣告的Perl 6’”[1]。Ruby的創始者——松本行弘(まつもとゆきひろ/Yukihiro Matsumoto,Matz)在接受O'Reilly的訪問時[2],也提到“Ruby借用了很多Perl的東西……,Python遠比Perl要少……”。從Ruby的命名也可以看出Matz遠大的企圖心:“Pearl(珍珠)是六月的誕生石[3],而Ruby是七月的誕生石,我認為Ruby這個名字作為Perl之后的一門語言的名字真是再恰當不過了。”

  Perl之父拉里·沃爾(Larry Wall)在《Larry Wall On Perl, Religion, and……》[5]一文中表示:“很多方面上我還是很喜歡Ruby的,這是因為那些部分是從Perl借過去的。:-)”、“我還喜歡Ruby的C<*>一元星號操作符,所以我把它加到Perl 6里面。”

  但是拉里·沃爾在文中也說:“Ruby的主要問題在于它的最少驚訝原則可能讓人誤入歧途,就好像隱藏式詞法范圍。問題在于減少誰的驚訝?專家和初學者對不同的事情驚訝。從一個小程序寫成大程序的人和從開始就寫大程序的人可能對不同的事情感到驚訝。”

  Perl6的結構:

  摘要

  源碼進入解釋器,解釋器產生一個語法樹(syntax tree)。

  語法樹進入編譯器,編譯器產字節碼(bytecode)。

  字節碼進入優化器(optimizer),優化器產生更多的(更好的)字節碼。

  Runtime然后來處理進入的字節碼(可能是運行他,不過也有可能把他轉化為Java字節碼,或.Net字節碼,或可執行的Alpha 代碼(an alpha executable),或編碼的DNA序列)。

  Source Code

  +----------------+

  |The Parser |

  +----------------+

  Syntax Tree

  +-------------------+

  |The Compiler |

  +--------------------+

  Bytecode

  +---------------------------+

  |Byteode Optimizer |

  +---------------------------+

  Better Bytecode

  +------------+

  |Runtime |

  +------------+

  計劃

  解釋器將允許你改動這些規則。規則集(rule sets)定義了主要的語言(Perl, C, Python, Java, etc.),你能為其他的語言撰寫新的規則(比如,沒有$ @ %等符號的Perl)。

  運行時引擎(the runtime engine)將會時一個基于寄存器的虛擬機(a register-based virtual machine),而perl5的虛擬機時基于棧的(stack-based)。

  重寫(revisit)Perl的一個主要原因是要去修復混亂的XS(XS是指用C/C++子程式來擴展Perl)的方式。除了用來執行Perl的函數, Perl5沒有用于擴展的API,所以擴展Perl需要大量繁瑣的工作。Dan和Larry的目標是要使C擴展的使用盡可能的簡單(Brian Ingerson的出色的Perl5內聯模塊為此指明一些方向)。所有使用過XS的人都等著他的滅亡。

  Perl5被設計成這樣一種方式,那就是當有C的時候,他就能運行。近來,一些虛擬機(JVM, .NET)代替了C。所以,我們將看到,我們的自己的虛擬機不僅能在有C的時候運行,而且同樣能方便的將字節碼輸入到其他的虛擬機。

網絡營銷詞典內容均由網友提供,僅供參考。

平特心水报图 欢乐生肖开奖 500彩票极速快三页面 甘肃十一选五专家介绍 刘伯温金牌六肖资料 百家乐桌子 时时彩定位胆稳赚公式 2011年捕鱼达人 什么软件更赚钱的软件是什么意思 永利官网网址 男生寝室赚钱