Skip to content

Latest commit

 

History

History
31 lines (22 loc) · 1.31 KB

README.md

File metadata and controls

31 lines (22 loc) · 1.31 KB

L & O

(Logic and Objects)

This is a compiler and run-time for the logic programming language known as L&O.

This is very much a work in progress and the documentation in the Doc directory is currently completely wrong.

Structure

There are two compilers: a bootstrap compiler - written in Prolog - and a proper compiler - written in L&O itself.

The compiler is currently the best source of documentation for the language.

Run-time

There is also a run-time - written in C. The run-time is fairly complete but not fully debugged or fleshed out.

Longer term, the run-time will be enhanced with a JIT-based system that generates machine code on the fly from the byte code.

The machine is a modified version of the Warren Abstract Machine - with some special hacks: the WAM does not understand higher-order programming or objects.

Road Map

  1. The compiler must be made stable (including both inlining and predicate pushdown as key optimizations)
  2. The language will then be extended to include a concurrency model.
  3. An IDE will be developed on top of Atom (in the first instance).
  4. Documentation:
  5. Reference manual
  6. Howto program in L&O
  7. Maybe change the name.

Some extensions:

  1. Auto-documentation of APIs by reading the source + annotations
  2. Compiler plug-in architecture to enable language extensions.