perl6

perl6

Raku,原名Perl 6,通用程序設計語言,支持多重編程範式,漸進式類型。在2019年10月更名為Raku。Raku語言在語法與Perl 5不同,被視為一種新的程式語言。

定義


Raku原名Perl 6,是一種通用計算機編程語言,脫胎於流行的Perl編程語言,支持多重編程範式,漸進式類型。官網為https://www.raku.org。
Raku主要設計者為拉里·沃爾。作為Perl的後繼者,在2000年開始發展,由於接續在Perl 5之後,舊名Perl 6,在2019年10月更名為Raku。Raku語言在語法與Perl 5不同,被視為一種新的程式語言,儘管其計劃提供Perl 5的兼容模式。
Raku擁有豐富的現代程序語言特徵,重新定義正規表達式和增加函數式程式語言的特徵,使之成為可演化的語言。為保證Raku和Perl社區的持續穩定發展,Raku編譯器使用Raku來重寫。為保證Perl語言原有函式庫的重用,編譯器計劃提供同Perl 5語言的兼容模式。
由於Raku語言的語法特徵和要求,Raku編譯器實現非常複雜,同時,自由軟體社群的資源相對貧乏。因此,Raku編譯器的開發顯得相當緩慢。
2010年7月,Rakudo的Rakudo Star,作為主要版本的試驗品發布。這一發布的目的是為了讓人們有一個可基本實用的編譯器,方便編寫程序和反映需求(Perl6的規範尚未凍結,以期根據人們的使用體驗以及編譯器的實現等來增補某些特性)。

簡介


儘管提供了同Perl 5的兼容模式,Perl 6語言語法同Perl 5有很多本質區別。
Perl 6擁有豐富的現代語言特徵,重新定義正規表達式和增加函數式編程和面向對象編程,使其成為可演化的語言。為保證Perl 6和Perl社區的持續穩定發展,Perl 6編譯器完全重寫,為保證Perl語言原有函式庫的重用,編譯器提供了Perl 5語言的兼容方式。
2019年10月,Perl 6正式更名為Raku,意圖明確Raku是一門不同於Perl的新的編程語言。眾所周知,Perl的吉祥物是駱駝,為了以示區別,Perl 6的吉祥物是一直彩色蝴蝶。
2010年7月,Rakudo發布了Rakudo Star。這時候目前為止可用的Raku實現,包括編譯器和虛擬機等。
Perl 6支持多種編程範式,
● 從設計起始就支持面向對象,例如Perl6的所有數據類型都是對象,支持繼承、多態。
● 作為一門脫胎於Perl的編程語言,Perl 6保持了Perl的許多特徵,例如sigil標識(在變數前用$, @, % &四種符號標示變數的屬性)。

Perl 6的結構


摘要
源碼進入解釋器,解釋器產生一個語法樹(syntax tree)。
語法樹進入編譯器,編譯器產位元組碼(bytecode)。
位元組碼進入優化器(optimizer),優化器產生更多的(更好的)位元組碼。
Runtime然後來處理進入的位元組碼(可能是運行他,不過也有可能把他轉化為Java位元組碼,或.Net位元組碼,或可執行的Alpha 代碼(an alpha executable),或編碼的DNA序列)。

Raku代碼示例


Hello, world例子

直接在安裝了Raku的系統上輸入以下代碼,列印出hello, world。

一百萬以內的所有素數

直接在安裝了Raku的系統上輸入以下代碼,列印出一百萬以內的所有素數。

階乘