title: Squirrel (langage de programmation)
text: # Squirrel (langage de programmation)
  
  Squirrel est un langage de programmation haut niveau impératif et orienté objet, conçu pour être un langage de script léger qui soit compatible en taille, occupation mémoire, et exigence temps réel d'applications comme les jeux vidéo. MirthKit, une boîte à outils pour faire et distribuer des jeux 2D open sources, multiplateformes, utilise Squirrel. Il est utilisé intensivement par Code::Blocks pour les scripts ainsi que dans la quasi-totalité du code source du jeu Final Fantasy Crystal Chronicles: My Life As a King publié par Square Enix, et également dans le jeu Hard Reset de Flying Wild Hog et dans tous les jeux Source récents de Valve.
  
  ## Fonctionnalités du langage
  
  * Typage dynamique
  * Délégation
  * Classes, Héritage
  * Fonction d'ordre supérieur
  * Générateurs
  * Coroutines (Coroutine)
  * Récursion terminale
  * Système de gestion d'exceptions
  * Gestion automatique de la mémoire (principalement par Références avec garbage collector)
  * Weak references
  * L'ensemble du compilateur et de la machine virtuelle totalisent 6000 lignes de C++
  * Gestion optionnelle des chaines de caractères en 16-bit
  