public
Description: Reia is a Ruby/Python-like language for BEAM, the Erlang VM
Homepage: http://reia-lang.org
Clone URL: git://github.com/tarcieri/reia.git
reia / README
100644 64 lines (41 sloc) 2.029 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
= Reia
 
Welcome to Reia (pronounced RAY-uh), a Ruby/Python-like scripting language for
the Erlang virtual machine (BEAM).
 
== Installation
 
Reia cannot presently be installed in the traditional sense. Instead,
programs must presently be executed from the toplevel directory of the Reia
distribution.
 
Reia also depends on a working Erlang installation, and requires a minimum
Erlang version of R12B-3 (5.6.3). The latest version of Erlang is available here:
 
http://www.erlang.org/download.html
 
== Usage
 
Reia provides three ways to execute programs:
 
* The Reia interpreter, located in bin/reia. This runs Reia programs from the
  command line without needing to compile them first.
  
* The interactive Reia interpreter, located in bin/ire. This provides an
  interactive environment (a read-eval-print loop) for running Reia programs,
  or just exploring the language.
  
* The Reia compiler, located in bin/reiac. This compiles Reia to .beam files
  which may be used in conjunction with Erlang code. The main use of the Reia
  compiler is for compiling the self-hosted parts of Reia itself. Programs
  compiled with it are more limited than ones run with the standard Reia
  interpreter.
  
== Compiling Reia
 
To compile Reia, you will need a working installation of Erlang (at least
R12B-3) as well as the "rake" tool. Instructions for installing Rake are
available at:
 
http://rake.rubyforge.org/
 
Once you've installed rake, type:
 
rake
 
under the Reia source tree to build Reia.
 
== Implementation
 
Here's some thoroughly interesting implementation trivia about Reia:
 
* Leex-based scanner (with second pass for indentation sensitivity)
* Yecc-based grammar
* Compiler transforms Reia abstract forms to Erlang abstract forms or BEAM
  bytecode
* Partly self-hosted: most core Reia types are written in Reia
 
== Programming Reia
 
Reia is under active development and therefore changing constantly. For the
most up-to-date information on how to program in Reia, consult the Wiki:
 
http://wiki.reia-lang.org/