A locally optimising Javalette compiler written in C. Javalette is essentially a subset of C, without pointers and dynamic memory allocation.
- Two backends: 32bit x86 assembly and quadruple code.
- Liveness analysis.
- Register allocation with Belady's algorithm.
- Local basic block optimisations: constant folding, common subexpression elimination, copy propagation.
- Frame pointer omission optimisation.
- Linux
- bison
- flex
- nasm assembler to produce x86 executables
- Compilation:
make
- Tests:
make test
- Invocation:
jl [options] program.jl
- Help:
jl -h
- Examples:
tests/examples
Before running the compiler ensure that the JL_DATA_DIR
environment
variable is set appropriately, or use the -d
option. The
JL_DATA_DIR
variable should point to the data
directory in the
source package.
A more detailed documentation is available in doc/doc.pdf
(in Polish).
Copyright (C) 2008-2021 by Lukasz Czajka.
Distributed under the MIT license. See the LICENSE file.