Welcome to Reia (pronounced RAY-uh), a Ruby/Python-like scripting language for
the Erlang virtual machine (BEAM).
To compile Reia, you will need a working installation of Erlang (at least
R12B-3) as well as the “rake” tool.
Reia requires Erlang version of R12B-3 (5.6.3). The latest version of Erlang
is available here:
You’ll also need to install rake. Instructions are available at:
Once you’ve installed rake, type:rake
under the Reia source tree to build Reia.
If Reia has compiled successfully, type:rake install
to install Reia systemwide. This will install the “reia” and “ire” scripts in
/usr/local/bin. Be sure to add this to your path (or move the scripts
elsewhere) if you’d like to be able to use Reia systemwide.
Reia provides three ways to execute programs:
- The Reia interpreter, located in bin/reia (or just “reia” if you’ve installed
Reia systemwide). This runs Reia programs from the command line.
- The interactive Reia interpreter, located in bin/ire (or just “ire” if you’ve
installed Reia systemwide). This provides an interactive environment (a
read-eval-print loop) for running Reia programs, or just exploring the
- The Reia static compiler, located in bin/reiac (not installed systemwide).
This compiles Reia to .beam files which may be used in conjunction with
Erlang code. The static Reia compiler is intended for compiling the
self-hosted parts of Reia and is not intended for general-purpose use.
Here’s some thoroughly interesting implementation trivia about Reia:
- Leex-based scanner
- Yecc-based grammar
- Compiler transforms Reia abstract forms to Erlang abstract forms or BEAM
- Partly self-hosted: Reia’s builtin types are mostly written in Reia
- Home Page: http://reia-lang.org
- Reia Wiki: http://wiki.reia-lang.org/
- Mailing List: http://groups.google.com/group/reia
- Author’s Blog: http://unlimitednovelty.com/
- Author’s Twitter: http://twitter.com/bascule
- IRC: irc.freenode.net #reia
About the Author
Reia was created by Tony Arcieri, a programmer from Boulder, Colorado, USA.
Tony has a background in network services and distributed peer-to-peer systems.
His favorite programming languages are Ruby and Erlang.