Exemples Catnip
Les exemples avancés et multi-fichiers sont dans advanced/.
Bases (basics/)
Exemples fondamentaux :
01_born_to_segfault.cat- Premier programme, debug et affichage02_loops.cat- Boucles for et while03_statement_separators.cat- Newlines, semicolons et séparateurs mixtes04_repl_multiline_demo.txt- Utilisation de la REPL en mode multiline
Fonctions (functions/)
Fonctions, lambdas et closures :
01_functions.cat- Définition de fonctions, paramètres, defaults02_lambdas.cat- Fonctions anonymes, lambdas inline03_closures_and_higher_order.cat- Closures, fonctions de fonctions, composition04_tail_recursion.cat- Récursion terminale et transformation automatique en boucles
Pattern Matching (pattern-matching/)
Matching et destructuration :
01_pattern_matching.cat- match/case, patterns littéraux, variables, guards, OR patterns
Flux de Contrôle (control-flow/)
Structures de contrôle avancées :
01_break_example.cat- Sortie anticipée de boucle02_continue_example.cat- Passage à l'itération suivante03_break_continue_combined.cat- Combinaison des deux
Avancé (advanced/)
Fonctionnalités avancées :
01_advanced_techniques.cat- Techniques avancées combinées02_blocks_and_expressions.cat- Blocs comme expressions03_data_structures.cat- Manipulation de structures complexes04_literals_and_variadic.cat- Littéraux et fonctions variadiques05_pragma_features.cat- Pragmas et directives06_fstrings.cat- Formatage de chaînes07_binary_search.cat- Algorithme de recherche binaire08_turing_completeness.cat- Démonstration de Turing-complétude09_assignment_syntax.cat- Affectation d'attributs et par index10_nd_recursion.cat- Récursion N-dimensionnelle11_pickle_example.py- Sérialisation pickle (AST, Scope, lambdas, closures)
Broadcasting (broadcast/)
Opérations vectorielles sur collections :
01_scalar_broadcasting.cat- Broadcasting sur scalaire02_basic_broadcasting.cat- SyntaxeA.[op M], bases03_math_operations.cat- Opérations mathématiques vectorielles04_comparisons.cat- Comparaisons et filtrage05_boolean_logic.cat- Logique booléenne distribuée06_nested_structures.cat- Broadcasting sur structures imbriquées07_cas_illustratifs.cat- Cas d'usage illustratifsbench_broadcast.py- Benchmarks de performance
Chargement de Modules (module-loading/)
Intégration avec Python :
index.md- Mécanismes de base01_demo.cat- Mode namespace par défaut02_demo_with_as.cat- Namespace personnalisé03_host_module_example.py- Module Python exemple04_app_script.cat- Script utilisant l'API05_simple_extension.py- Extension simple06_custom_functions.py- Fonctions personnalisées07_app_api.py- API d'application simulée
Intégration DSL (embedding/)
Catnip comme moteur DSL embarqué dans une application Python :
01_dataframe_dsl.py- DSL pour DataFrames pandas02_config_dsl.py- Validation de configuration03_etl_pipeline.py- Pipeline ETL déclaratif04_rule_engine.py- Moteur de règles métier05_report_builder.py- Génération de rapports06_workflow_dsl.py- Orchestration de workflows07_flask_sandbox.py- Sandbox Flask sécurisé08_jupyter_integration.py- Magic commands Jupyter09_streamlit_app.py- Dashboard Streamlit interactif
Performance (performance/)
Cache et optimisations :
cache_demo.py- Démonstration du système de cachecache_memory_example.py- Cache en mémoirecache_disk_example.py- Cache sur disquecache_redis_example.py- Cache Rediscache_comparison.py- Comparaison des backendsmemoization_build_script.py- Script de build avec cachememoization_dependencies.py- Gestion des dépendancesmemoization_python_hooks.py- Hooks Python pour cachetail_recursion_benchmark.py- Benchmark transformation tail recursion → loopjit_benchmark.py- Benchmark compilation JITpure_function_inlining.md- Inline de fonctions pures dans le JIT (10-30% speedup)vm_mode_benchmark.py- Comparaison VM vs AST
Control Flow Graph (cfg/)
Analyse et optimisation du flux de contrôle :
01_cfg_basic.md- Construction de CFG, blocs basiques, edges02_cfg_analysis.md- Dominance, détection de boucles03_cfg_optimization.md- Optimisations (dead code, fusion, branches)04_cfg_reconstruction.md- Reconstruction de code structuré depuis CFG
Outils (tools/)
Utilitaires de développement :
extract_grammar_demo.py- Extraction de la grammaire Tree-sitterjson_ir_analysis.py- Analyse programmatique de l'IR via sérialisation JSON
Exécuter les Exemples
# Exemple simple
catnip docs/examples/basics/01_born_to_segfault.cat
# Avec module Python
catnip -f ./docs/examples/module-loading/host_module_example.py:host docs/examples/module-loading/02_demo_with_as.cat
# Mode verbeux
catnip -v docs/examples/functions/01_functions.cat
# REPL pour expérimenter
catnip