Final-year Computer Science project
TongaLang
An educational interpreted programming language using Tonga-based keywords and a desktop IDE.
- Role
- Developer & Researcher
- Status
- Active development
- Year
- 2025–2026
- Stack
- Python · PLY · Tkinter · Pytest · AST · .tg files
01 · Context
The problem
Beginner programmers may need to learn programming concepts and interpret unfamiliar English syntax at the same time, adding linguistic and cognitive load.
The response
TongaLang explores introductory programming through Tonga-based keywords while preserving familiar computational concepts. It is an educational language, not a replacement for mainstream production languages.
02 · Contribution
What I built
- 01
Researched minimal languages and interpreter construction before implementation.
- 02
Mapped programming concepts into Tonga through linguistic research and consultation with native speakers.
- 03
Built a terminal interpreter, then separated the language engine from a Tkinter IDE-style interface.
- 04
Created automated tests and deliberately invalid programs to test failure behaviour.
03 · Implemented evidence
Current
capabilities.
Execution pipeline
From source to
feedback.
- Source .tg program
- Lexer tokens
- Parser grammar
- AST structure
- Interpreter runtime
- Output or bilingual error
04 · Engineering
Hard parts,
clear decisions.
Useful bilingual errors
Lexical, syntax and runtime failures needed controlled feedback that preserved technical meaning without exposing raw Python exceptions.
Graphical program input
Moving from terminal input to Tkinter required execution state to pause and resume without freezing the interface event loop.
Growing without regressions
Each feature could affect tokens, grammar, AST nodes, runtime behaviour, highlighting and existing programs, so changes were mapped across every layer and regression-tested.
05 · Reflection
What I learned
Planned or still in development
- Continued IDE polish
- Expanded learning examples and documentation
Private repository inspected locally: lexer, parser, AST, interpreter, bilingual-error modules and automated tests are present.
Project access