This project is a Java implementation of a small custom programming language interpreter built as part of a university assignment.
It simulates how a programming language works internally by parsing and executing statements step by step, while managing memory, variables, and program state.
The interpreter supports:
- Arithmetic and relational expressions
- Variable declarations and assignments
ifstatementswhileloops- Heap allocation and heap access
- File operations (open, read, close)
- Forked (concurrent) execution
- Basic garbage collection
- A JavaFX graphical interface
The project follows a layered architecture:
src/ controller/ exceptions/ gui/ model/ expression/ state/ statement/ type/ value/ repository/ view/
- Model – Defines the language structure (expressions, statements, types, values)
- Controller – Handles execution logic
- Repository – Manages program state and logging
- View / GUI – Text-based menu and JavaFX interface
- Java
- JavaFX
- Object-Oriented Programming principles
Main class: gui.GuiMain
If running with a manual JavaFX SDK setup: --module-path PATH_TO_JAVAFX/lib --add-modules javafx.controls,javafx.fxml