本页使用了标题或全文手工转换

Perl 6

维基百科,自由的百科全书
跳到导航 跳到搜索
Perl 6
Camelia.svg
Perl 6吉祥物Camelia[1]
编程范型 多重编程范式
语言家族 Perl
設計者 拉里·沃尔
實作者 Perl 6 community
发行时间 2015年12月25日,​3年前​(2015-12-25
穩定版本
v6.d “Diwali”
(2018年11月5日,​4個月前​(2018-11-05
型態系統 動態、漸進式
作業系統 跨平台
許可證 GNU通用公共许可证
艺术许可协议 2.0
文件扩展名 .p6, .pl6, .pm6, .pod6 [2]
網站 perl6.org
主要實作產品
Rakudo英语Rakudo Perl 6
啟發語言
Haskell[3]JavaScriptPerl 5RubySmalltalk
影響語言
Perl 5[4]Haskell[4]、AntLang

Perl 6程式語言Perl语言的后续。由于Perl 6语言语法與Perl 5不同,因此,可以把它看作一种新的程式語言,尽管其计划提供Perl 5的兼容模式。

Perl 6拥有丰富的现代语言特征,拉里·沃尔计划用重新定义正規表達式和增加函數式程式語言的特征,使之成为可演化的语言。为保证Perl 6和Perl社区的持续稳定发展,Perl 6编译器需要使用Perl 6来重写。为保证Perl语言原有函式庫的重用,编译器还计划提供同Perl 5语言的兼容模式。

由于Perl 6语言的语法特征和要求,Perl 6编译器实现非常复杂,同时,自由軟體社群的资源相对贫乏。因此,Perl 6编译器的开发显得相当缓慢。

2010年7月Rakudo的Rakudo Star,作为主要版本的试验品发布。这一发布的目的是为了让人们有一个可基本用于实际的编译器,以方便编写程序,以及反映需求(Perl6的规范尚未冻结,以期根据人们的使用体验以及编译器的实现等来增补某些特性)。

歷史[编辑]

在2000年時,拉里·沃尔宣告開始開發Perl 6。最初的目標,是移除Perl因為歷史因素而保留下來的一些功能。

程式範例[编辑]

Hello World[编辑]

say 'Hello, world';

巨集[编辑]

 macro hello($what) {
   quasi { say "Hello { {{{$what}}} }" };
 }

和Ruby比較[编辑]

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

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

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

参考文献[编辑]

  1. ^ 引用错误:没有为名为camelia的参考文献提供内容
  2. ^ https://docs.perl6.org/language/modules#Basic_structure
  3. ^ Glossary of Terms and Jargon. Perl Foundation Perl 6 Wiki. The Perl Foundation. 2011-02-28 [2015-02-08]. 
  4. ^ 4.0 4.1 唐鳳, a.k.a. Audrey Tang. How to Implement Perl 6 in '10. 2010-04-21. 
  5. ^ 日本的Perl社群名人——宮川達彥專訪。
  6. ^ 訪問Matz。[永久失效連結]
  7. ^ Larry Wall在命名Perl时,曾经想过使用Pearl作为名称,但发现已经有Pearl这个语言了,于是就成为Perl。
  8. ^ O'Reilly訪問Matz。
  9. ^ Larry Wall On Perl, Religion, and…… 互联网档案馆存檔,存档日期2007-07-29.

外部連結[编辑]

規格[编辑]

實做[编辑]

  • Perl 6,Perl 6的主要發展資訊站台。
  • Rakudo Perl 6,基於Parrot的Perl 6實作(Activated)
  • Pugs,以Haskell實做Perl 6的計畫。(Deactivated)
  • v6.pm,純Perl的實做,based on a Perl 6's CPAN stack。
  • ParrotParrot的主站。
  • compilers, Full List of Perl 6 Compilers

其他[编辑]

参见[编辑]