compiler

Unnamed Compiled Systems Language Project
git clone http://frotz.net/git/compiler.git
Log | Files | Refs

readme.md (2186B)


      1 
      2 # Unnamed Compiled Systems Language Project
      3 
      4 > "O. Inspired by Oberon and gO, and it's like C without the sharp edges." - @adamwp
      5 
      6 It doesn't really have a name yet.  The project is still very early.  
      7 The syntax and features are incomplete and will change.  It is way, way
      8 too early to do much of anything but watch me tinker with things,
      9 building this incrementally.
     10 
     11 The general plan is a small compiled systems language (in complexity,
     12 source size, and binary size) borrowing syntax from some of my favorite
     13 "braces languages", C, Go, and Rust, aiming to be a bit safer than C,
     14 and suitable for small, embedded, self-hosted systems.
     15 
     16 ### [Why write a compiler?](docs/why-write-a-compiler.md)
     17 Do you have to have a reason?
     18 
     19 ### [Resources and Inspiration](docs/resources-and-inspiration.md)
     20 Documents and things that inspired this adventure.
     21 
     22 ### [Notebook](docs/notebook.md) 
     23 A place for commentary, ideas, and random jottings.
     24 
     25 ### [Todo List](docs/todo.md)
     26 Little boxes to be ticked when tasks are completed.
     27 
     28 ### Status
     29 
     30 It's currently compiling a subset of the work-in-progress language and
     31 generating binaries for the Project Oberon
     32 [Risc 5 Architecture](docs/project-oberon-risc5-architecture.txt).  
     33 
     34 I plan to also support RISCV (RV32I) as a target soonish, and if the
     35 project keeps moving will eventually target X86-64 because why not.
     36 
     37 It's presently written in C, but once the core language is suitably
     38 featureful and codegen is reasonably reliable I plan to translate it
     39 to itself and become self-hosted.
     40 
     41 ### License and Third Party Code
     42 
     43 All of the code here is provided under the
     44 [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0.txt)
     45 with the exception of third party modules which live under the
     46 [external/](external/) directory.
     47 
     48 Notably, [external/oberon-risc-emu/](external/oberon-risc-emu/) contains
     49 the core RISC5 Emulator implemention from Peter Dr Wachter's excellent
     50 [Oberon Risc Emu](https://github.com/pdewacht/oberon-risc-emu), which is
     51 under a [BSD-like license](external/oberon-risc-emu/LICENSE).
     52 
     53 I borrowed just the CPU emulation for a simple commandline runtime.  The
     54 original project is a full Project Oberon Workstation emulator.
     55