Artifact [ed9c8990a0]

Artifact ed9c8990a026aaa8d9f59e8d6447062115de10b1006fce4d096344c9a171d7de:

Wiki page [PL/2DX] by kc5tja 2017-08-31 06:04:53.
D 2017-08-31T06:04:53.712
L PL/2DX
N text/x-markdown
U kc5tja
W 1732
# PL/2DX

## Why?

I'm [designing a computer](http://chiselapp.com/user/kc5tja/repository/kestrel-2dx/index) around the RV64I instruction set architecture.
While this architecture is supported by GCC,
so far I've not been successful
in using it to produce flat binary images
suitable for use in my computer's bootstrap ROM.
So, I decided to try and tackle making a purpose-built,
systems programming language suited just for writing my bootstrap ROM images.
Using this, I hope to implement an ELF reader that is
capable of supporting the ELF images that GCC produces, thus
letting me bootstrap the rest of my run-time environment.

## Inspirations

Some languages of note will inform how I design the language.

* [PL/I](https://en.wikipedia.org/wiki/PL/I)
* [Oberon](https://en.wikipedia.org/wiki/Oberon_(programming_language\))
* C (especially circa Unix 6th Edition, back when C was *simple*)

## Why Lisp-Flavored?

Laziness.  I could write my own lexer and parser, but I really don't have the patience for that anymore.  I'm using [Shen Lisp](http://shenlanguage.org)'s reader to do all that work for me, thus letting me focus more on the code generator.

Besides, if syntax really does become an issue, I could conceivably also make use of Shen's built-in support for parsing to define an infix syntax.  *Or,* maybe *you* can, and submit a patch.  ;)

# Mission

* Compile high(ish) level code into an assembly language listing suitable for the Kestrel-2DX's development toolchain.
* Let me write a reasonable BIOS-like implementation in space competitive with hand-written assembly language.  (I have 32KiB of ROM space available to me, so *tight* code is more important than *speedy* code.)

Z cb6eec6298e3a59c2183df24ca375706