Skip to content

elginer/Obelisk

Repository files navigation

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.

About

A compiler for a new general purpose programming language.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published