/
README
44 lines (29 loc) · 1.75 KB
/
README
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
The Obelisk Programming Language
Copright 2010 John Morrice
Released under the terms of the GNU General Public License. See COPYING.
Contact: John Morrice of spoon@killersmurf.com
From the Obelisk Report:
"Obelisk is a general purpose programming language.
Obelisk aims to:
* Be an eagerly evaluated, functional programming language.
* Support functions with expressive, polymorphic types, but to be utterly type safe.
* Respect functional purity, with no mutable variables in functions...
...but also to support a class-based object system, where objects control mutable state, represented by their instance variables
* Be supportive of simple and efficient implementation: implementation of an Obelisk compiler which produces competitively fast code should not warrant a PhD dissertation.
* Be developed in an free and open manner."
...well, it's not quite there! That is what Obelisk aims to be. This is a work-in progress compiler for the Obelisk programming language.
What you'll need to work on this:
* The Glasgow Haskell compiler. I am using version 6.10.4.
* Cabal-install, a command line interface to GHC package management.
* A C compiler. The scripts that build the runtime are rigged to use GCC. I use C99 and -pedantic.
Current stage: iteration #1
Objectives: implement a compiler for non-polymorphic, simply typed functions.
What we have:
In the compiler; Lexical analysis, parse, and type-checking of simple functions. Check the 'tests' directory.
In the run-time: Basic memory management, copying garbage collector.
Build the compiler with ./build.sh
Run the tests with ./test.sh
Build the runtime with ./runtime.sh
In the runtime directory
Build the tests with ./test.sh
Execute the runtime tests by hand or within gdb.