Caractéristiques du langage de programmation recherché Ce qu'il ne doit pas être ========================= -- pas concaténatif (Forth) -- pas fonctionnel (Lisp, ML) -- pas basé sur Java / la JVM -- pas basé sur une indentation significative (Python) -- une usine à templates (C++, D) -- lourdingue (C#) et si possible pas trop verbeux non plus (Ada) Ce qu'il doit être ================== ++ procédural, impératif Ce qu'il doit fournir ===================== ++ un interfaçage facile avec des bibliothèques C La syntaxe qu'il doit avoir =========================== ++ la déclaration des variables doit (pouvoir) être obligatoire, si possible sans obligation d'initialisation ++ itération sur tableau, du genre for elt in tableau ++ itération double avec index, du genre for i, elt in tableau (la même syntaxe ou très proche doit pouvoir servir pour les couples clé-valeur d'un hash, si le langage implémente des hashs. ++ il doit y avoir de la syntaxe pour les regex, y compris les captures ex : mystr ~cap~ /ab(c*)d(.*)/ ++ un type non-signé ou naturel ++ des types bas-niveau compatibles avec C (pour l'interfaçage facile) ++ des énumérations un peu plus évoluées qu'en C : autonumération possible aussi vers le bas, choix du type entier sous-jacent, choix d'autres types, sortie vers chaine ++ des constantes, éventuellement de plusieurs sortes (#define, let) ++ un système de typedef, qui peut se décliner en 2 sortes ou plus (alias, distinct) ++ litéraux pour tableaux/listes (dont les vides) ++ des intervalles fermés par défaut [..], optionnellement ouverts [..[ ++ un switch, plus évolué que celui du C, avec des tests de regex et d'intervalles, et la possibilité de choisir un fallthrough. ++ opérateur ternaire (comme le ?: de C) Ce qu'il peut fournir en plus ============================= ++ un système de macros simples, comme en C ou juste un peu plus évolué mais guère ++ un système Objet pas trop exhubérant ++ opérateur Elvis