Rekhta – Toy Programming Language
TypeScript-based toy programming language with Urdu syntax designed for compiler construction learning.
Rekhta is an innovative TypeScript-based toy programming language with Urdu syntax, designed specifically for compiler construction learning and making programming accessible to Urdu speakers. The project serves as both an educational tool and a practical implementation of compiler design principles.
The language features LL(1) parsing, Abstract Syntax Tree (AST) construction, comprehensive error handling, and a custom interpreter. The Urdu syntax makes programming concepts more accessible to native Urdu speakers while maintaining the rigor of traditional programming languages.
The project includes a complete compiler pipeline from lexical analysis to code execution, with detailed error reporting and debugging capabilities. The implementation demonstrates advanced concepts in compiler design, language theory, and software engineering.
Technical achievements include implementing a complete lexer and parser, designing an efficient AST structure, creating comprehensive error handling mechanisms, and building a custom interpreter for code execution. The project demonstrates expertise in compiler design, language theory, and educational software development.
What was hard → How I solved it
Designing and implementing LL(1) parser for Urdu syntax
Implemented recursive descent parser with LL(1) grammar
Creating comprehensive Abstract Syntax Tree (AST) structure
Designed modular AST with visitor pattern for traversal
Developing robust error handling and reporting system
Created detailed error reporting with line numbers and suggestions
Building custom interpreter for code execution
Built stack-based interpreter with memory management
Ensuring language accessibility for Urdu speakers
Developed Urdu-friendly syntax with English fallbacks
Maintaining educational value while technical complexity
Created comprehensive documentation and examples
What it changed
Making programming accessible to Urdu-speaking communities
Providing educational tool for compiler design learning
Demonstrating advanced software engineering concepts
Contributing to programming language diversity
Creating foundation for future language development