Spécification du langage

Documentation de référence du langage Catnip, du plus accessible au plus avancé.

Commencer ici

  • SYNTAX - Syntaxe de base, séparateurs, conventions et annexes
  • TYPES - Types de données : nombres, décimales exactes, complexes, chaînes, f-strings, booléens, collections
  • EXPRESSIONS - Expressions multilignes, opérateurs, attributs, indexation et slicing
  • CONTROL_FLOW - Structures de contrôle (if, while, for, break, continue)
  • FUNCTIONS - Fonctions, lambdas, décorateurs, appels terminaux et fonctions intégrées
  • STRUCTURES - Structures, méthodes, traits, héritage et abstractions
  • PATTERN_MATCHING - Référence complète du filtrage par motifs (pattern matching)

Aller plus loin

  • BROADCAST - Notation vectorielle sur collections : opérations avec A.[op M], transformations sur listes et dictionnaires, motifs de broadcasting

  • SCOPES_AND_VARIABLES - Affectation, portée des variables et closures : résolution de portée, masquage (shadowing), captures et durée de vie

  • PRAGMAS - Directives de compilation (TCO, JIT avec @jit et pragma("jit", "all")), récursion ND (mode parallèle, mémoïsation) et import de modules

Théorie et preuves (optionnel)

  • TURING_COMPLETENESS - Le socle formel du langage : il peut exprimer tout type d'algorithme. Les preuves formelles servent à vérifier ces garanties (audit, recherche, sécurité), sans être nécessaires pour coder au quotidien
  • COQ_PROOFS - Référentiel des preuves Coq : ce qui est prouvé, comment vérifier (make proof) et où trouver les modules de preuve

Glossaire

  • GLOSSARY - Définitions des concepts clés et de la terminologie du langage