|
| 1 | +--- |
| 2 | +layout: home |
| 3 | +page_id: home |
| 4 | +locale: fr |
| 5 | +title: "Langage de programmation multilingue" |
| 6 | +description: "Ecrivez des programmes en anglais, francais, espagnol, japonais, arabe, hindi et plus encore. Un seul noyau formel. Backends Python et WASM." |
| 7 | +permalink: /fr/ |
| 8 | +--- |
| 9 | + |
| 10 | +<section class="hero"> |
| 11 | + <span class="hero-eyebrow">v0.5.1 — Maintenant avec WASM et POO</span> |
| 12 | + <h1 class="hero-title"> |
| 13 | + Ecrivez du code en<br/> |
| 14 | + <span class="gradient-text">toute langue humaine</span> |
| 15 | + </h1> |
| 16 | + <p class="hero-description"> |
| 17 | + <strong>multilingual</strong> est un langage de programmation avec un noyau semantique formel unique et plusieurs interfaces en langues naturelles. Ecrivez en anglais, francais, espagnol, japonais, arabe, hindi et plus encore — compilez vers Python ou WASM. |
| 18 | + </p> |
| 19 | + <div class="hero-actions"> |
| 20 | + <a href="{{ '/fr/docs/demarrage/' | relative_url }}" class="btn btn-primary">Commencer →</a> |
| 21 | + <a href="{{ '/fr/docs/guide-langage/' | relative_url }}" class="btn btn-secondary">Guide du langage</a> |
| 22 | + <a href="https://github.com/johnsamuelwrites/multilingual" class="btn btn-secondary" target="_blank" rel="noopener">Voir sur GitHub</a> |
| 23 | + </div> |
| 24 | +</section> |
| 25 | + |
| 26 | +<div class="stats-strip"> |
| 27 | + <div class="stat-item"> |
| 28 | + <div class="stat-value">17</div> |
| 29 | + <div class="stat-label">Langues humaines</div> |
| 30 | + </div> |
| 31 | + <div class="stat-item"> |
| 32 | + <div class="stat-value">1,797</div> |
| 33 | + <div class="stat-label">Cas de test</div> |
| 34 | + </div> |
| 35 | + <div class="stat-item"> |
| 36 | + <div class="stat-value">100x</div> |
| 37 | + <div class="stat-label">Acceleration WASM</div> |
| 38 | + </div> |
| 39 | + <div class="stat-item"> |
| 40 | + <div class="stat-value">41</div> |
| 41 | + <div class="stat-label">Fonctions localisees</div> |
| 42 | + </div> |
| 43 | + <div class="stat-item"> |
| 44 | + <div class="stat-value">0.5.1</div> |
| 45 | + <div class="stat-label">Version actuelle</div> |
| 46 | + </div> |
| 47 | +</div> |
| 48 | + |
| 49 | +<section class="home-section" style="padding-top:3rem" markdown="1"> |
| 50 | + <div style="text-align:center; margin-bottom:2rem"> |
| 51 | + <span class="section-eyebrow">Le meme programme, dans chaque langue</span> |
| 52 | + <h2 class="section-title">Un modele syntaxique, 17 expressions</h2> |
| 53 | + <p class="section-desc" style="margin: 0 auto 0">Ecrivez la meme logique dans n'importe quelle langue prise en charge. Le compilateur la projette vers le meme noyau formel et la meme sortie Python.</p> |
| 54 | + </div> |
| 55 | + |
| 56 | +<div class="code-demo"> |
| 57 | + <div class="code-demo-header"> |
| 58 | + <span class="code-demo-dot dot-red"></span> |
| 59 | + <span class="code-demo-dot dot-yellow"></span> |
| 60 | + <span class="code-demo-dot dot-green"></span> |
| 61 | + <span class="code-demo-title">bonjour.ml</span> |
| 62 | + </div> |
| 63 | + <div class="code-demo-tabs"> |
| 64 | + <button class="code-tab active" data-target="en">Anglais</button> |
| 65 | + <button class="code-tab" data-target="fr">Francais</button> |
| 66 | + <button class="code-tab" data-target="es">Espagnol</button> |
| 67 | + <button class="code-tab" data-target="ja">Japonais</button> |
| 68 | + <button class="code-tab" data-target="ar">Arabe</button> |
| 69 | + <button class="code-tab" data-target="hi">Hindi</button> |
| 70 | + </div> |
| 71 | + <div class="code-demo-body"> |
| 72 | + <div class="code-panel" data-lang="en" style="display:block"> |
| 73 | +{% highlight python %} |
| 74 | +let name = "world" |
| 75 | +let count = 5 |
| 76 | + |
| 77 | +def greet(n): |
| 78 | + for i in range(count): |
| 79 | + print(f"Hello, {n}! iteration {i}") |
| 80 | + |
| 81 | +greet(name) |
| 82 | +{% endhighlight %} |
| 83 | +</div> |
| 84 | + <div class="code-panel" data-lang="fr" style="display:none"> |
| 85 | +{% highlight python %} |
| 86 | +soit nom = "monde" |
| 87 | +soit compteur = 5 |
| 88 | + |
| 89 | +fonction saluer(n): |
| 90 | + pour i dans intervalle(compteur): |
| 91 | + afficher(f"Bonjour, {n} ! iteration {i}") |
| 92 | + |
| 93 | +saluer(nom) |
| 94 | +{% endhighlight %} |
| 95 | +</div> |
| 96 | + <div class="code-panel" data-lang="es" style="display:none"> |
| 97 | +{% highlight python %} |
| 98 | +sea nombre = "mundo" |
| 99 | +sea contador = 5 |
| 100 | + |
| 101 | +def saludar(n): |
| 102 | + para i en rango(contador): |
| 103 | + imprimir(f"Hola, {n}! iteracion {i}") |
| 104 | + |
| 105 | +saludar(nombre) |
| 106 | +{% endhighlight %} |
| 107 | +</div> |
| 108 | + <div class="code-panel" data-lang="ja" style="display:none"> |
| 109 | +{% highlight python %} |
| 110 | +変数 名前 = "世界" |
| 111 | +変数 カウント = 5 |
| 112 | + |
| 113 | +関数 挨拶(n): |
| 114 | + 毎 i 中 範囲(カウント): |
| 115 | + 表示(f"こんにちは {n} 繰り返し {i}") |
| 116 | + |
| 117 | +挨拶(名前) |
| 118 | +{% endhighlight %} |
| 119 | +</div> |
| 120 | + <div class="code-panel" data-lang="ar" style="display:none"> |
| 121 | +{% highlight python %} |
| 122 | +ليكن اسم = "العالم" |
| 123 | +ليكن عداد = 5 |
| 124 | + |
| 125 | +دالة تحية(n): |
| 126 | + لكل i في مدى(عداد): |
| 127 | + اطبع(f"مرحبا {n} تكرار {i}") |
| 128 | + |
| 129 | +تحية(اسم) |
| 130 | +{% endhighlight %} |
| 131 | +</div> |
| 132 | + <div class="code-panel" data-lang="hi" style="display:none"> |
| 133 | +{% highlight python %} |
| 134 | +मान नाम = "दुनिया" |
| 135 | +मान गिनती = 5 |
| 136 | + |
| 137 | +परिभाषा नमस्ते(n): |
| 138 | + के_लिए i में परास(गिनती): |
| 139 | + छापो(f"नमस्ते {n} पुनरावृत्ति {i}") |
| 140 | + |
| 141 | +नमस्ते(नाम) |
| 142 | +{% endhighlight %} |
| 143 | +</div> |
| 144 | + </div> |
| 145 | +</div> |
| 146 | + |
| 147 | +</section> |
| 148 | + |
| 149 | +<section class="home-section" markdown="1"> |
| 150 | + <span class="section-eyebrow">Pourquoi multilingual ?</span> |
| 151 | + <h2 class="section-title">Concu pour le monde entier</h2> |
| 152 | + |
| 153 | +<div class="feature-grid"> |
| 154 | + |
| 155 | +<div class="feature-card"> |
| 156 | +<span class="feature-icon">🌐</span> |
| 157 | +<div class="feature-title">17 langues humaines</div> |
| 158 | +<p class="feature-desc">Anglais, francais, espagnol, allemand, italien, portugais, polonais, neerlandais, suedois, danois, finnois, hindi, arabe, bengali, tamoul, chinois et japonais, tous comme interfaces de premier rang.</p> |
| 159 | +</div> |
| 160 | + |
| 161 | +<div class="feature-card"> |
| 162 | +<span class="feature-icon">⬡</span> |
| 163 | +<div class="feature-title">Un seul noyau formel</div> |
| 164 | +<p class="feature-desc">Toutes les interfaces linguistiques compilent vers le meme AST central et le meme CoreIRProgram. La semantique reste identique quelle que soit la langue de surface.</p> |
| 165 | +</div> |
| 166 | + |
| 167 | +<div class="feature-card"> |
| 168 | +<span class="feature-icon">⚡</span> |
| 169 | +<div class="feature-title">Backend WASM</div> |
| 170 | +<p class="feature-desc">Le backend WebAssembly optionnel apporte des accelerations de 50x a 100x pour les operations matricielles, la cryptographie, le calcul scientifique et plus encore, avec repli automatique sur Python.</p> |
| 171 | +</div> |
| 172 | + |
| 173 | +<div class="feature-card"> |
| 174 | +<span class="feature-icon">🐍</span> |
| 175 | +<div class="feature-title">Compatible Python</div> |
| 176 | +<p class="feature-desc">Sous-ensemble complet de la syntaxe Python 3.12+ : classes, async/await, comprehensions, decorateurs, f-strings, pattern matching, generateurs, context managers, et plus.</p> |
| 177 | +</div> |
| 178 | + |
| 179 | +<div class="feature-card"> |
| 180 | +<span class="feature-icon">🔧</span> |
| 181 | +<div class="feature-title">Extensibilite guidee par les donnees</div> |
| 182 | +<p class="feature-desc">Ajoutez une nouvelle langue de programmation principalement via des fichiers de configuration JSON, sans reecrire le parseur. Mots-cles, fonctions integrees et patterns de surface sont decrits comme des donnees.</p> |
| 183 | +</div> |
| 184 | + |
| 185 | +<div class="feature-card"> |
| 186 | +<span class="feature-icon">🧪</span> |
| 187 | +<div class="feature-title">~1,797 tests, 58 fichiers</div> |
| 188 | +<p class="feature-desc">Couverture de test complete sur les 17 langues. Chaque interface est verifiee de bout en bout : lexer → parser → semantique → generation de code → execution.</p> |
| 189 | +</div> |
| 190 | + |
| 191 | +<div class="feature-card"> |
| 192 | +<span class="feature-icon">📝</span> |
| 193 | +<div class="feature-title">REPL interactif</div> |
| 194 | +<p class="feature-desc">REPL avec changement de langue et apercu Python. Basculez entre les 17 langues au cours d'une meme session. Inspectez le Python genere, les mots-cles et les operateurs.</p> |
| 195 | +</div> |
| 196 | + |
| 197 | +<div class="feature-card"> |
| 198 | +<span class="feature-icon">🔤</span> |
| 199 | +<div class="feature-title">Normalisation de surface</div> |
| 200 | +<p class="feature-desc">Les langues SOV et RTL comme le japonais, l'arabe, le hindi, le bengali et le tamoul prennent en charge l'ordre de mots naturel via des regles declaratives.</p> |
| 201 | +</div> |
| 202 | + |
| 203 | +<div class="feature-card"> |
| 204 | +<span class="feature-icon">🔢</span> |
| 205 | +<div class="feature-title">Numeraux multilingues</div> |
| 206 | +<p class="feature-desc">Prise en charge des numeraux Unicode, des chiffres romains, des nombres complexes, des fractions et de la notation scientifique dans plusieurs systemes d'ecriture.</p> |
| 207 | +</div> |
| 208 | + |
| 209 | +</div> |
| 210 | +</section> |
| 211 | + |
| 212 | +<section class="home-section" markdown="1"> |
| 213 | + <span class="section-eyebrow">Langues prises en charge</span> |
| 214 | + <h2 class="section-title">Interfaces linguistiques mises en avant</h2> |
| 215 | + <p class="section-desc">Chaque langue est une interface complete avec mots-cles localises, messages d'erreur, fonctions integrees et support REPL.</p> |
| 216 | + |
| 217 | +<div class="lang-grid"> |
| 218 | + <a href="{{ '/fr/docs/guide-langage/toutes-langues/#english' | relative_url }}" class="lang-pill"> |
| 219 | + Anglais <span class="lang-code">en</span> |
| 220 | + </a> |
| 221 | + <a href="{{ '/fr/docs/guide-langage/toutes-langues/#french' | relative_url }}" class="lang-pill"> |
| 222 | + Francais <span class="lang-code">fr</span> |
| 223 | + </a> |
| 224 | + <a href="{{ '/fr/docs/guide-langage/toutes-langues/#spanish' | relative_url }}" class="lang-pill"> |
| 225 | + Espagnol <span class="lang-code">es</span> |
| 226 | + </a> |
| 227 | + <a href="{{ '/fr/docs/guide-langage/toutes-langues/#japanese' | relative_url }}" class="lang-pill"> |
| 228 | + Japonais <span class="lang-code">ja</span> |
| 229 | + </a> |
| 230 | + <a href="{{ '/fr/docs/guide-langage/toutes-langues/#arabic' | relative_url }}" class="lang-pill"> |
| 231 | + Arabe <span class="lang-code">ar</span> |
| 232 | + </a> |
| 233 | + <a href="{{ '/fr/docs/guide-langage/toutes-langues/#hindi' | relative_url }}" class="lang-pill"> |
| 234 | + Hindi <span class="lang-code">hi</span> |
| 235 | + </a> |
| 236 | +</div> |
| 237 | +</section> |
| 238 | + |
| 239 | +<section class="home-section" markdown="1"> |
| 240 | + <span class="section-eyebrow">Demarrage rapide</span> |
| 241 | + <h2 class="section-title">Lancez-vous en 60 secondes</h2> |
| 242 | + |
| 243 | +**Installation :** |
| 244 | + |
| 245 | +```bash |
| 246 | +# Minimal (backend Python seulement) |
| 247 | +pip install multilingualprogramming |
| 248 | + |
| 249 | +# Recommande (Python + acceleration WASM) |
| 250 | +pip install multilingualprogramming[wasm] |
| 251 | + |
| 252 | +# Performance maximale (Python + WASM + NumPy) |
| 253 | +pip install multilingualprogramming[performance] |
| 254 | +``` |
| 255 | + |
| 256 | +**Lancer le REPL :** |
| 257 | + |
| 258 | +```bash |
| 259 | +# Par defaut (anglais) |
| 260 | +python -m multilingualprogramming repl |
| 261 | + |
| 262 | +# Francais |
| 263 | +python -m multilingualprogramming repl --lang fr |
| 264 | + |
| 265 | +# Japonais |
| 266 | +python -m multilingualprogramming repl --lang ja |
| 267 | + |
| 268 | +# Avec apercu Python |
| 269 | +python -m multilingualprogramming repl --show-python |
| 270 | +``` |
| 271 | + |
| 272 | +**Executer un fichier :** |
| 273 | + |
| 274 | +```bash |
| 275 | +python -m multilingualprogramming run myprogram.ml --lang en |
| 276 | +python -m multilingualprogramming run programme.ml --lang fr |
| 277 | +``` |
| 278 | + |
| 279 | +**Utiliser comme bibliotheque :** |
| 280 | + |
| 281 | +```python |
| 282 | +from multilingualprogramming import ProgramExecutor |
| 283 | + |
| 284 | +executor = ProgramExecutor() |
| 285 | +executor.execute(""" |
| 286 | +soit x = 10 |
| 287 | +soit y = 20 |
| 288 | +afficher(x + y) |
| 289 | +""", language="fr") |
| 290 | +``` |
| 291 | + |
| 292 | +</section> |
| 293 | + |
| 294 | +<section class="home-section" markdown="1"> |
| 295 | + <span class="section-eyebrow">Architecture</span> |
| 296 | + <h2 class="section-title">Pipeline de compilation</h2> |
| 297 | + <p class="section-desc">Chaque programme, dans n'importe quelle langue, suit le meme pipeline vers une sortie Python ou WASM.</p> |
| 298 | + |
| 299 | +``` |
| 300 | +Langage de surface (fichier .ml) |
| 301 | + | |
| 302 | + v |
| 303 | + +---------------+ |
| 304 | + | Lexer | Tokenisation Unicode, resolution des concepts de mots-cles |
| 305 | + +------+--------+ |
| 306 | + | Jetons conceptuels (COND_IF, LOOP_FOR, FUNC_DEF...) |
| 307 | + v |
| 308 | + +-------------------+ |
| 309 | + | Normalisation | Optionnelle : reecrit l'ordre SOV/RTL vers une forme canonique |
| 310 | + | de surface | |
| 311 | + +------+------------+ |
| 312 | + | |
| 313 | + v |
| 314 | + +---------------+ |
| 315 | + | Parser | Construit un AST central independant de la langue |
| 316 | + +------+--------+ |
| 317 | + | |
| 318 | + v |
| 319 | + +-------------------+ |
| 320 | + | Enveloppe CoreIR | CoreIRProgram (conteneur type avec metadonnees) |
| 321 | + +------+------------+ |
| 322 | + | |
| 323 | + v |
| 324 | + +-------------------+ |
| 325 | + | Analyse semantique| Portee, symboles, verification structurelle |
| 326 | + +------+------------+ |
| 327 | + | |
| 328 | + +----+----+ |
| 329 | + | | |
| 330 | + v v |
| 331 | ++--------+ +---------+ |
| 332 | +|Python | | WAT | Cibles de generation de code |
| 333 | +| Gen | | Gen | |
| 334 | ++---+----+ +----+----+ |
| 335 | + | | |
| 336 | + v v |
| 337 | ++--------+ +-----------+ |
| 338 | +|Python | | wasmtime | |
| 339 | +|Runtime | | (-> .wasm)| |
| 340 | ++--------+ +-----------+ |
| 341 | +``` |
| 342 | + |
| 343 | +<div style="margin-top:1.5rem"> |
| 344 | + <a href="{{ '/fr/docs/conception/' | relative_url }}" class="btn btn-secondary">Lire la documentation d'architecture →</a> |
| 345 | +</div> |
| 346 | +</section> |
0 commit comments