Logo Lanfrica

olaanii/afan-oromo-PL

Domain:

natural language processing

Record type:

software
Creator:
ola
Host:
A beginner-friendly programming language for Afaan Oromo speakers that translates Oromo-based syntax into Python, making coding more accessible through localized keywords and compiler design concepts. Built to support inclusive programming education and low-resource language technology. # Afan Oromo Programming Language (AOBL) - Translator Group Members Name Id.no 1. Samuel Tesfachew ------------- UGR/31190/15 2. Olani Shambel ------------------ UGR/31097/15 3. Yeabsira Zerihun -------------- UGR/31384/15 4. Kenenisa Mekonnen ------------ UGR/30771/15 5. Israel Bekele ----------------- UGR/30715/15 A beginner-oriented programming language that translates Afan Oromo source code (`.or` files) into executable Python 3 code. AOBL reduces the English syntax barrier for Afan Oromo speakers learning programming by using familiar native language keywords and terminology. ## Overview AOBL (Afan Oromo Beginner Language) provides an accessible entry point into programming by combining: - **Native language support**: Keywords and error messages in Afan Oromo - **Structured compiler architecture**: Proper lexical analysis, parsing, type checking, and code generation - **Python compatibility**: Translated code runs as standard Python 3 - **Educational focus**: Designed for beginners transitioning to mainstream programming ## Architecture & Compilation Pipeline The translator follows a structured multi-stage compilation process: ``` .or Source Code ↓ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Lexer │ --> │ Parser │ --> │ Type Checker│ --> │ Generator │ │ (Tokens) │ │ (AST) │ │ (Validate) │ │ (Python) │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ ``` 1. **Lexical Analysis** (`lexer.py`): Converts source text into tokens, handles indentation (space-based), and supports Unicode identifiers 2. **Parsing** (`parser.py`): Recursive descent parser builds an Abstract Syntax Tree (AST) with operator precedence 3. **Type Checking** (`type_checker.py`): Validates type consistency and infers types with localized error messages 4. **Code Generation** (`generator.py`): Produces clean, executable Python 3 code ## Project S …