/azuki

Experimental lab for Compiler Design course.

Primary LanguageRust

Azuki

Development of Azuki has been suspended. Please head over to miniSysY and miniSysY-tutorial for updates on BUAA-SE's compiler course updates.

Azuki is an experimental lab experiment design & reference implementation for Compilers Design course. This project also serves as a part of Rynco Maekawa's bachelor's degree thesis.

Features

  • Support for a C-like language (C0)
    • Lexing
    • Parsing
    • AST generation
  • Generate SSA Intermediate Representation from AST
  • Perform optimization in IR
    • TODO: List optimizations here
  • Run IR inside a virtual machine
  • Handbook for students using this project
  • Grading tools and test cases

Project structure

./                      root folder
    docs/               documents & handbooks
    bindings/           bindings for different languages
    crates/             libraries used in Azuki
        syntax/         lexing & parsing & AST
        tac/            three-address code (TAC) definition
        tacgen/         TAC code generation
        opt/            optimization passes
        vm/             virtual machine
    src/                reference design source

Related projects

Online Judger (the other half of thesis project): Rurikawa

Previous attempts of Compilers Design lab in The College of Software in BUAA:

License

Azuki is licensed under MIT license.

Copyright (c) 2020 Rynco Maekawa.