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 …