10 points par GN⁺ 2026-03-16 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Un langage compilé à typage statique écrit avec des mots-clés en hangeul, qui génère des binaires natifs via LLVM IR
  • Fournit à la fois un compilateur et un interpréteur implémentés en Rust, avec une CLI hgl prenant en charge la compilation, l’exécution, le REPL et les fonctions LSP
  • Tous les mots-clés sont en coréen, comme 함수, 만약, 반복, 변수, et les noms de variables comme de fonctions peuvent aussi être définis en hangeul
  • Intègre des fonctions pratiques comme les entrées/sorties de fichiers, JSON, HTTP, expressions régulières, date/heure et appels système, et inclut 18 exemples
  • Met en œuvre dans un langage de programmation la structure scientifique du hangeul et sa diffusion culturelle, attirant l’attention comme une nouvelle tentative de combiner apprentissage du coréen et code

Aperçu du langage Han

  • Han est un langage compilé à typage statique écrit avec des mots-clés coréens, qui génère des binaires natifs via LLVM IR
    • Inclut une toolchain de compilation et un interpréteur tree-walking écrits en Rust
    • La commande hgl permet de lancer l’interpréteur, compiler, utiliser le REPL et démarrer le serveur LSP
  • Tous les mots-clés sont composés en hangeul, par exemple : 함수, 만약, 반복, 변수, 출력
  • Le projet vise à implémenter en langage de programmation le système d’écriture scientifique du hangeul, avec pour objectif de marier beauté linguistique et précision technique

Principales fonctionnalités

  • Prise en charge des mots-clés et identifiants en hangeul : noms de variables, de fonctions et de structures peuvent être écrits en hangeul
  • Système de types statique : 5 types primitifs sont fournis, 정수, 실수, 문자열, , 없음
  • Modes compilation et interprétation : LLVM IR → clang → génération de binaire ou exécution immédiate
  • REPL et serveur LSP : exécution interactive et autocomplétion via hgl repl et hgl lsp
  • Fonctionnalités intégrées
    • Tableaux, structures, closures, pattern matching, gestion des exceptions, génériques
    • I/O de fichiers, JSON, HTTP, expressions régulières, date/heure, appels système
    • Chaînes formatées, tables de hachage, fonctions mathématiques intégrées
  • 18 programmes d’exemple inclus : Hello World, appel d’API HTTP, etc.

Installation et exécution

  • Prérequis : Rust (1.70+), clang
  • Procédure d’installation
  • Une extension VS Code est fournie : coloration syntaxique et prise en charge LSP
  • Commandes CLI
    • hgl interpret <file.hgl> — lancer l’interpréteur
    • hgl build <file.hgl> — compiler en binaire natif
    • hgl run <file.hgl> — compiler puis exécuter immédiatement
    • hgl repl — mode interactif
    • hgl lsp — lancer le serveur LSP

État actuel de l’implémentation

  • Fonctionnalités entièrement opérationnelles
    • Types de données, flux de contrôle, fonctions, chaînes, tableaux, tables de hachage, structures, gestion des erreurs, vérification des types
    • JSON, HTTP, expressions régulières, date/heure, système, I/O de fichiers, fonctions mathématiques, modules, génériques
  • Fonctionnalités partiellement implémentées
    • Lors de hgl build, la génération de code pour les closures ainsi que les méthodes sur chaînes et tableaux n’est pas terminée
  • Fonctionnalités non implémentées
    • Sécurité Null (pas de type Option), traitement asynchrone/parallèle, garbage collection, optimisation de récursion terminale

Le hangeul et la programmation

  • Le hangeul est un système d’écriture scientifique qui représente visuellement la structure phonologique, créé en 1443 par le roi Sejong
  • Han reflète cette clarté structurelle du hangeul dans la syntaxe du code
  • Plus de 16 millions de personnes apprennent le coréen dans le monde, et Han propose un moyen d’apprendre le hangeul à travers le code
  • Exemples de mots-clés
    • 함수(function), 만약(if), 반복(for), 반환(return), 변수(variable), 출력(print), etc.

Conception et architecture

  • Pipeline de compilation basé sur Rust
    • Lexer → Parser → AST → Interpreter / CodeGen → LLVM IR → clang → Binary
  • Structure du projet
    • src/ — code principal du compilateur et de l’interpréteur
    • editors/vscode/ — extension VS Code
    • Inclut aussi examples/, spec/, tests/
  • Raisons des choix de conception
    • Génération d’IR textuel plutôt qu’usage de l’API C de LLVM pour simplifier la build
    • L’interpréteur privilégie l’exécution rapide, le compilateur les performances
    • Le pattern matching et la sûreté mémoire de Rust conviennent bien à l’implémentation du langage

Tests et licence

  • cargo test exécute 46 tests (41 unitaires, 5 d’intégration)
  • Publié sous licence MIT

Portée culturelle

  • Han est un langage expérimental qui combine la beauté du hangeul et la précision de la programmation
  • Il propose aux apprenants du coréen comme aux développeurs une nouvelle approche qui brouille la frontière entre langue et code

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.