Rakudo

Last updated
Rakudo
Stable release
"2024.04" #171 [1] / April 25, 2024;0 days ago (2024-04-25)
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

The Comprehensive Perl Archive Network (CPAN) is a repository of over 250,000 software modules and accompanying documentation for 39,000 distributions, written in the Perl programming language by over 12,000 contributors. CPAN can denote either the archive network or the Perl program that acts as an interface to the network and as an automated software installer. Most software on CPAN is free and open source software.

<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.

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.

Bytecode is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references that encode the result of compiler parsing and performing semantic analysis of things like type, scope, and nesting depths of program objects.

DotGNU is a decommissioned part of the GNU Project that started in January 2001 and aimed to provide a free software replacement for Microsoft's .NET Framework. The DotGNU project was run by the Free Software Foundation. Other goals of the project are better support for non-Windows platforms and support for more processors.

<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."

String functions are used in computer programming languages to manipulate a string or query information about a string.

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.

Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell has pioneered a number of programming language features such as type classes, which enable type-safe operator overloading, and monadic input/output (IO). It is named after logician Haskell Curry. Haskell's main implementation is the Glasgow Haskell Compiler (GHC).

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.

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-04-25.
  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.