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支持多种编程范式,

Perl 6的结构

摘要

源码进入解释器,解释器产生一个语法树(syntax tree)。

语法树进入编译器,编译器产字节码(bytecode)。

字节码进入优化器(optimizer),优化器产生更多的(更好的)字节码。

Runtime然后来处理进入的字节码(可能是运行他,不过也有可能把他转化为Java字节码,或.Net字节码,或可执行的Alpha 代码(an alpha executable),或编码的脱氧核糖核酸序列)。

Raku代码示例

Hello, world例子

直接在安装了Raku的系统上输入以下代码,打印出hello, world。

一百万以内的所有素数

直接在安装了Raku的系统上输入以下代码,打印出一百万以内的所有素数。

阶乘

参考资料