https://github.com/matcom/hulk
Reference definition for the HULK language.
https://github.com/matcom/hulk
compilers-design language-design programing-language teaching-materials
Last synced: 18 days ago
JSON representation
Reference definition for the HULK language.
- Host: GitHub
- URL: https://github.com/matcom/hulk
- Owner: matcom
- Created: 2019-03-20T18:09:40.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2026-03-10T18:35:25.000Z (18 days ago)
- Last Synced: 2026-03-10T20:50:18.129Z (18 days ago)
- Topics: compilers-design, language-design, programing-language, teaching-materials
- Language: Python
- Homepage: https://matcom.github.io/hulk
- Size: 11.3 MB
- Stars: 19
- Watchers: 6
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# HULK (Havana University Language for Kompilers)
[](https://github.com/matcom/hulk/actions/workflows/release.yml)
[](http://creativecommons.org/licenses/by-sa/4.0/)
[](https://www.python.org/)
[](https://www.rust-lang.org/)
[](https://matcom.github.io/hulk)
HULK is a didactic, type-safe, object-oriented, and incremental programming language designed for teaching compiler construction at the university level.
## Project Architecture
The project follows a **literate programming** approach, where the implementation is embedded within the documentation itself.
- **Frontend (HULK):** Implemented in Python 3.13+, focusing on lexing, parsing, and semantic analysis.
- **Backend (Banner IR):** A stack-based virtual machine implemented in Rust for high performance and safety.
- **Literate Engine:** Uses `illiterate` to tangle code from Quarto (`.qmd`) files in `pages/` into the `src/` directory.
## Getting Started
To set up the development environment, ensure you have the following installed:
- Python 3.13+ (and `uv`)
- Rust (and `cargo`)
- Quarto
- Node.js (for VS Code extension development)
Run the full build and test suite:
```bash
make all
```
## Documentation
- **[Student-Facing Book](https://matcom.github.io/hulk):** The primary pedagogical resource for the language.
- **[Developer Documentation](docs/index.md):** Technical guides on architecture, deployment, and development workflows.
## License
HULK is licensed under [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/).