Dabara (prononcé dah-BAH-rah) est un langage de programmation utilisant des mots-clés en haoussa, conçu pour démocratiser l'accès à la programmation pour les communautés Hausa.
Français: Dabara permet aux locuteurs Hausa d'apprendre et d'utiliser la programmation dans leur langue maternelle, supprimant ainsi les barrières linguistiques dans l'apprentissage de la technologie.
Hausa: Dabara yana ba da damar ma masu magana da Hausa su koyi da kuma amfani da shirye-shiryen kwamfuta a cikin yarensu na asali, yana cire matsalar harshe wajen koyan fasaha.
- ✅ Syntaxe Hausa : Utilise des mots-clés en haoussa pour tous les concepts de programmation
- ✅ Support Unicode : Gestion complète des caractères spéciaux haoussa (ƙ, ɗ, ɓ, etc.)
- ✅ Gestion des variables : Déclaration et utilisation de variables
- ✅ Opérations arithmétiques : Addition et soustraction
- ✅ Concaténation de chaînes : Combinaison de texte
- ✅ Messages d'erreur localisés : Tous les messages d'erreur en haoussa
- ✅ Types de données : Nombres, chaînes, booléens
-
Allez sur la page Releases
-
Téléchargez le binaire correspondant à votre système :
- Linux (x86_64) :
dabara-x86_64-unknown-linux-gnu.tar.gz - Linux (musl) :
dabara-x86_64-unknown-linux-musl.tar.gz - Windows :
dabara-x86_64-pc-windows-msvc.zip - macOS (Intel) :
dabara-x86_64-apple-darwin.tar.gz - macOS (Apple Silicon) :
dabara-aarch64-apple-darwin.tar.gz
- Linux (x86_64) :
-
Extraire l'archive :
# Linux/macOS tar -xzf dabara-*.tar.gz # Windows (PowerShell) Expand-Archive dabara-*.zip
-
Déplacer le binaire vers un répertoire dans votre PATH :
# Linux/macOS sudo mv dabara /usr/local/bin/ # ou mv dabara ~/.local/bin/ # Windows # Copiez dabara.exe dans un dossier de votre PATH
- Rust (version 1.70+)
git clone https://github.com/votre-username/dabara.git
cd dabara
cargo build --release
cargo install --path .dabara programme.haCréez un fichier sannu.ha :
fara
rubuta "Sannu duniya!"
ƙare
Exécutez-le :
dabara sannu.haSortie :
Sannu duniya!
| Hausa | Variante Latin | Français | Usage | Misali |
|---|---|---|---|---|
fara |
fara |
commencer | Début de programme | fara |
ƙare |
kare |
finir | Fin de programme | ƙare ou kare |
rubuta |
rubuta |
écrire/imprimer | Afficher du texte | rubuta "Sannu" |
naɗa |
nada |
créer/définir | Déclarer une variable | naɗa sunan = "Ahmad" ou nada sunan = "Ahmad" |
gaskiya |
gaskiya |
vrai | Valeur booléenne vraie | naɗa sahihi = gaskiya |
karya |
karya |
faux | Valeur booléenne fausse | naɗa karami = karya |
ƙara |
kara |
ajouter | Addition | lambar1 ƙara lambar2 ou lambar1 kara lambar2 |
rage |
rage |
retirer | Soustraction | lambar1 rage lambar2 |
💡 Accessibilité : Pour faciliter l'utilisation sur tous les claviers, vous pouvez maintenant utiliser soit les caractères haoussa originaux soit les variantes latines :
ƙareoukare(fin)naɗaounada(déclaration)ƙaraoukara(addition)
``hausa fara // Votre code ici ƙare
### Types de données
- **Lambar (Nombres)** : `42`, `0`, `999`
- **Jimla (Chaînes)** : `"Sannu"`, `"Ina kwana?"`
- **Boolean** : `gaskiya`, `karya`
### Variables
```hausa
fara
naɗa sunan = "Khadija"
naɗa shekarun = 25
naɗa sahihi = gaskiya
ƙare
fara
rubuta "Sannu!"
rubuta 42
rubuta gaskiya
ƙare
fara
naɗa a = 10
naɗa b = 5
naɗa jimla = a ƙara b // Addition: 15
naɗa bambanci = a rage b // Soustraction: 5
rubuta jimla
rubuta bambanci
ƙare
fara
naɗa sunan = "Ahmad"
rubuta "Sannu " + sunan // Affiche: Sannu Ahmad
ƙare
``hausa fara rubuta "Sannu! Ina kwana?" ƙare
### Variables et affichage
``hausa
fara
naɗa sunan = "Khadija"
naɗa shekarun = 25
rubuta "Sunanta: " + sunan
rubuta "Shekarunta: "
rubuta shekarun
ƙare
``hausa fara naɗa lambar1 = 10 naɗa lambar2 = 5 naɗa jimla = lambar1 ƙara lambar2 naɗa bambanci = lambar1 rage lambar2
rubuta "Jimla: " rubuta jimla rubuta "Bambanci: " rubuta bambanci ƙare
### Valeurs booléennes
```hausa
fara
naɗa sahihi = gaskiya
naɗa karami = karya
rubuta "Girmansa: " + sahihi
rubuta "Karami: " + karami
ƙare
fara
nada sunan = "Ahmad"
nada lambar = 42
nada resultat = lambar kara 8
rubuta "Sannu " + sunan
rubuta "Lambar: "
rubuta resultat
kare
Tous les messages d'erreur sont en haoussa pour une meilleure compréhension :
Kuskure: Ba a gane kalmar '@'- Caractère non reconnuKuskure: Ana tsammanin 'lambar', amma an samu 'jimla'- Type incorrectKuskure: Babu irin wannan mai canjin 'sunan'- Variable non trouvée
cargo testcargo test -- --nocapturecargo test --test integration_testsActivez le mode debug pour voir les tokens et l'AST :
export DABARA_DEBUG=1
dabara programme.hadabara/
├── src/
│ ├── main.rs # Point d'entrée CLI
│ ├── lexer.rs # Tokenisation
│ ├── parser.rs # Analyse syntaxique
│ ├── interpreter.rs # Exécution
│ ├── error.rs # Gestion d'erreurs
│ └── lib.rs # Déclarations modules
├── examples/ # Programmes d'exemple
├── tests/ # Tests d'intégration
└── README.md # Cette documentation
- Structures de contrôle (
in,sai,maimaita) - Fonctions définies par l'utilisateur
- Tableaux et listes
- Opérations de comparaison
- Support pour les commentaires
- Importation de modules
- Opérations sur fichiers
Les contributions sont les bienvenues ! Voici comment contribuer :
- Fork le repository
- Créez une branche pour votre fonctionnalité (
git checkout -b feature/nouvelle-fonctionnalite) - Commitez vos modifications (
git commit -am 'Ajout nouvelle fonctionnalité') - Poussez vers la branche (
git push origin feature/nouvelle-fonctionnalite) - Créez une Pull Request
- Maintenez la compatibilité avec les caractères Unicode haoussa
- Ajoutez des tests pour toute nouvelle fonctionnalité
- Documentez en français et haoussa
- Gardez les messages d'erreur en haoussa
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
- À la communauté Hausa pour l'inspiration culturelle
- À l'équipe Rust pour l'excellent tooling
- À tous les contributeurs futurs
Pour questions, suggestions ou contributions :
- Créez une issue sur GitHub
- Contactez l'équipe de développement
Dabara - "Yaren shirye-shirye na gida" (Le langage de programmation local)
Sannu da zuwa! 🎉