AQA ALI Interpreter
“aquabler”, an implementation of AQA ALI (which is subset of ARM Assembly). While not a true assembler (and lacking debugging tools) aqabler gives students a chance to play with the ALI that will be used in their exams (AQA AS/A-Level Computer Science 7516 or 7517)
The implementation is in Rust to gain the performance of the likes of C but with pointer safety. We target rust stable and the aqabler library only requires std:
& :HashMap
std::fmt
for the standard library with no other dependancies, whilst the cli requires parts of std::fs
& std::path
to read source files
Aqabler provides a very simple language with very few verbs, it doesn’t even have comments) but this is because we only intend to support the language as AQA defines it. Feel free to fork and add extra commands just be aware we are unlikly to accept such pull requests
Like most projects written in rust we use cargo as our build system. To build aqabler first use rustup to install the rust toolchain & cargo. Then clone aqabler to you machine and navigate to it’s directory in a terminal & run:
cargo build --release
To make a release build of aqabler or to compile & run
cargo run --release --bin aqabler <file.aqb>
Where <file.aqb>
is a path to a file containing AQA ALI code