A small project that combines a simple softcore, an “old-fashioned” compiler, and some kind of primitive disassembler.
|
10 months ago | |
---|---|---|
compiler | 10 months ago | |
cpu | 10 months ago | |
disasembler | 10 months ago | |
docs | 10 months ago | |
examples | 10 months ago | |
LICENSE | 10 months ago | |
README.md | 10 months ago |
A small project that combines a simple softcore, an “old-fashioned” compiler, and some kind of primitive disassembler.
This language is a modified PL/0 and is designed for use for microcontrollers. The main changes are:
odd
, !
, ?
operators has been removed.~
), OR (|
), AND (&
), XOR (^
).MEM
data type - a single level pointer.The full syntax of the language is in docs/ebnf.txt
Contains compiler code in the C language. The compiler is single pass, uses a recursive descending algorithm. There are no optimization mechanisms, even constant folding.
Some kind of disassembler with the linear sweep method.
Based on the architecture proposed by Niklaus Wirth in his book Compiler Construction (2017). There are two hardware implementations for OrangeCrab and Tang Nano 9k.
More details are available in docs/risc.txt
Examples that demonstrate possibilities of language and use of the periphery of soft-core hardware.