Rakudo

Last updated
Rakudo
Stable release
"2024.06" #173 [1] / June 27, 2024;0 days ago (2024-06-27)
Repository
Operating system Linux, Windows, FreeBSD, OS X, NetBSD, OpenBSD
Type Raku (v6.c, v6.d) Compiler
License Artistic License 2.0
Website rakudo.org

Rakudo is a Raku compiler targeting MoarVM, and the Java Virtual Machine, that implements the Raku specification. [2] It is currently the only major Raku compiler in active development.

Contents

Originally developed within the Parrot project, the Rakudo source code repository was split from the project in February 2009 so that it could be developed independently, although there were still many dependencies at the time. Rakudo is written in C, Raku, and the lightweight Raku subset NQP (Not Quite Perl). [3] [4]

Rakudo Perl #14 was released in February 2009, codenamed Vienna after the Perl mongers group that had sponsored one of its developers since April 2008. Subsequent releases have used codenames based on Perl mongers groups.

The first major release of a distribution of both compiler and modules (named "Rakudo *" or "Rakudo Star") was on July 29, 2010. [5]

Name

The name "Rakudo" for the Raku compiler was first suggested by Damian Conway. [6] "Rakudo" is short for "Rakuda-dō" (with a long 'o'; 駱駝 ), which is Japanese for "Way of the Camel". "Rakudo" (with a short 'o'; ) also means "paradise" in Japanese.

The term "Rakudo" was also chosen to distinguish between the name of a language implementation ("Rakudo") from the name of the language specification ("Raku") – any implementation that passes the official test suite could call itself "Raku". There are currently several implementations at various levels of maturity, with only Rakudo implementing full Raku and NQP for Raku subset. [2] [7]

Books

Related Research Articles

<span class="mw-page-title-main">Perl</span> Interpreted programming language first released in 1987

Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language".

<span class="mw-page-title-main">Regular expression</span> Sequence of characters that forms a search pattern

A regular expression, sometimes referred to as rational expression, is a sequence of characters that specifies a match pattern in text. Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation. Regular expression techniques are developed in theoretical computer science and formal language theory.

<span class="mw-page-title-main">Ruby (programming language)</span> General-purpose programming language

Ruby is an interpreted, high-level, general-purpose programming language. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including primitive data types. It was developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.

Parrot is a discontinued register-based process virtual machine designed to run dynamic languages efficiently. It is possible to compile Parrot assembly language and Parrot intermediate representation to Parrot bytecode and execute it. Parrot is free and open-source software.

Coroutines are computer program components that allow execution to be suspended and resumed, generalizing subroutines for cooperative multitasking. Coroutines are well-suited for implementing familiar program components such as cooperative tasks, exceptions, event loops, iterators, infinite lists and pipes.

<span class="mw-page-title-main">Raku (programming language)</span> Programming language derived from Perl

Raku is a member of the Perl family of programming languages. Formerly known as Perl 6, it was renamed in October 2019. Raku introduces elements of many modern and historical languages. Compatibility with Perl was not a goal, though a compatibility mode is part of the specification. The design process for Raku began in 2000.

Pugs is a compiler and interpreter for the Raku programming language, started on February 1, 2005, by Audrey Tang.

<span class="mw-page-title-main">Damian Conway</span>

Damian Conway is a computer scientist, a member of the Perl and Raku communities, a public speaker, and the author of several books. Until 2010, he was also an adjunct associate professor in the Faculty of Information Technology at Monash University.

<span class="mw-page-title-main">Perl Foundation</span> Nonprofit organization

The Perl Foundation (TPF) is a non-profit, 501(c)(3) organization based in Holland, Michigan. It is dedicated to the advancement of the Perl and Raku programming languages through open discussion, collaboration, design, and code. The Perl Foundation fulfills a range of activities which includes, "the collection and distribution of development grants, sponsorship and organization of community-led local and international Perl conferences, and support for community web sites and user groups."

Programming languages are used for controlling the behavior of a machine. Like natural languages, programming languages follow rules for syntax and semantics.

Yet Another Perl Conference (YAPC), from 2016–2019 called The Perl Conference (TPC), from 2020 on The Perl and Raku Conference, is a series of conferences discussing the Perl programming language, usually organized under the auspices of The Perl Foundation and Yet Another Society, a "non-profit corporation for the advancement of collaborative efforts in computer and information sciences". The name is an homage to yacc, "Yet Another Compiler Compiler".

<span class="mw-page-title-main">Java (software platform)</span> Set of computer software and specifications

Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.

Raku rules are the regular expression, string matching and general-purpose parsing facility of the Raku programming language, and are a core part of the language. Since Perl's pattern-matching constructs have exceeded the capabilities of formal regular expressions for some time, Raku documentation refers to them exclusively as regexes, distancing the term from the formal definition.

The Parser Grammar Engine is a compiler and runtime for Raku rules for the Parrot virtual machine. PGE uses these rules to convert a parsing expression grammar into Parrot bytecode. It is therefore compiling rules into a program, unlike most virtual machines and runtimes, which store regular expressions in a secondary internal format that is then interpreted at runtime by a regular expression engine. The rules format used by PGE can express any regular expression and most formal grammars, and as such it forms the first link in the compiler chain for all of Parrot's front-end languages.

In computer programming, ellipsis notation is used to denote ranges, an unspecified number of arguments, or a parent directory. Most programming languages require the ellipsis to be written as a series of periods; a single (Unicode) ellipsis character cannot be used.

Fedora Linux is a popular Linux distribution developed by the Fedora Project. Fedora attempts to maintain a six-month release schedule, offering new versions in May and November, although some releases have experienced minor delays.

The following outline is provided as an overview of and topical guide to the Perl programming language:

MoarVM is a virtual machine built for the 6model object system. It is being built to serve as yet another VM backend for Raku. MoarVM was created to allow for greater efficiency than Parrot by having a closer internal representation to the model system used by Raku. Notably it was the virtual machine for the first stable version of Rakudo released in December 2015.

References

  1. "Releases · rakudo/rakudo" . Retrieved 2024-06-27.
  2. 1 2 "Perl 6 Compilers" . Retrieved 2015-12-25.
  3. Michaud, Patrick (2011-06-14). "Rakudo architectural overview" . Retrieved 2012-06-24.
  4. "NQP - Not Quite Perl at github". 2022-05-29. Retrieved 2022-05-29.
  5. Linux Today (30 July 2010). "Announce: Rakudo Star — a useful, usable, "early adopter" distribution of Perl 6". Archived from the original on 2013-12-31. Retrieved 2013-12-31.
  6. O'Reilly FYI (21 August 2008). "The Mind of Damian Conway: Science, Computer Science, the Future of Perl 6, and Advice for Today's Aspiring Programmers" . Retrieved 2013-12-30.
  7. Lenz, Moritz (23 October 2009). "We write a Perl 6 book for you" . Retrieved 2012-01-02.