Camelia, the Raku bug

Raku 编译器

Raku 是一种语言规范,就像 C 或 C++ 一样,它鼓励为该语言开发多个编译器。

编译器

Rakudo™NQP

Rakudo 运行在 MoarVM 和 Java 虚拟机 (JVM) 上。它在 Rakudo GitHub 网站上积极开发。 下载或编译 Rakudo.

NQP 不是 Raku 编译器。NQP 是 Raku 的一个小子集,用作基础工具来帮助编写编译器(包括 Rakudo)和库。


历史编译器

Niecza
Niecza 是一个针对公共语言运行时(.NET 和 Mono)的编译器。它的目标是探索 Raku 的静态方面以及编译时优化的可能性。
STD
STD 是 Larry Wall 对 Raku 语法、解析器生成器和一些语义验证器的参考实现。STD 是“标准”的缩写。它用 Raku 编写,由 viv 翻译成 Perl 5。它也被其他几个编译器的各个阶段使用(mildew、perlito、elf)。
viv
viv(“vi” 到 “v”,6 到 5)是一个使用 STD 作为前端的编译器。STD 本身使用 viv 来构建。它与 STD 一起积极开发。
Perlito
Perlito,也称为 MiniPerl6,是 Raku 的一个子集,设计为一种轻量级的引导语言。你可以 在线尝试。它正在积极开发 这里.
Pugs
Pugs 用 Haskell 编写。连续版本的 ghc 的维护版本发布到 Hackage 这里.

补充

  • Inline::Perl5 在 Raku 中执行 Perl 代码。支持 Perl 模块,包括像 DBI 这样的 XS 模块。允许传递整数、字符串、数组和哈希。还支持从 Raku 调用 Perl 对象的方法,以及从 Perl 调用 Raku 对象的方法。
  • Rakudo 的设置库,它定义了脚本启动时可用的所有类、例程和术语。用 Perl 的术语来说,它大致相当于你在 perlfunc、perlop 等中看到的所有内容。Raku 的这部分主要用 Raku(和 NQP)编写。