AccueilđŸ‡«đŸ‡·Chercher

Io (langage)

Io est un langage de programmation pur objet basé sur les prototypes et distribué sous licence BSD. Il a été créé en 2002 par Steve Dekorte.

Io (langage)
Logo.

Date de premiĂšre version
Influencé par NewtonScript (en)
Smalltalk
Self
Lua
Lisp
Python
Actor model middle history (en)
Licence BSD 3-clauses
Site web iolanguage.org

Présentation

Lorsque Steve Dekorte imagina son langage, il le voulait léger, simple, multi-plateforme et facile à embarquer dans un autre programme. C'est ainsi qu'est né Io (dont le nom doit refléter sa simplicité).

Il s'inspire de différents langages tout en tirant parti de leurs qualités respectives :

  • Smalltalk : toutes les valeurs sont des objets ;
  • Self ;
  • NewtonScript ;
  • Act1 : hĂ©ritage diffĂ©rentiel des prototypes, acteurs et promesses de rĂ©ponse pour la concurrence entre tĂąches ;
  • LISP : le code est un environnement d'exĂ©cution basĂ© sur un arbre accessible en lecture et en Ă©criture ;
  • LUA : lĂ©ger et pouvant ĂȘtre embarquĂ©.

Io est un langage de script disposant de plusieurs extensions dans divers domaines tels que le chiffrement des données, la programmation réseau, le graphisme ou encore les bases de données.

Machines virtuelles

Io se dĂ©cline sous trois machines virtuelles ce qui lui apporte une grande portabilitĂ© puisque celui-ci (comme tout langage interprĂ©tĂ©) peut ĂȘtre exĂ©cutĂ© sous n'importe quelle architecture pour autant que la machine virtuelle soit disponible pour celle-ci.

IoVM

IoVM est la base du langage ; la plupart des fonctionnalitĂ©s se trouvant dans IoServer et IoDesktop. Elle peut ĂȘtre utilisĂ©e indĂ©pendamment ou en tant que langage embarquĂ© dans un plus grand projet.

IoServer

IoServer apporte de nombreuses fonctionnalités par rapport à la conception d'applications serveurs telles que les applications Web.

IoDesktop

Et enfin, IoDesktop, se veut ĂȘtre une solution de dĂ©veloppement multimĂ©dia. Il est donc possible par son intermĂ©diaire d'exploiter des images, OpenGL et tout ce qui est en rapport avec le multimĂ©dia.

Ces trois machines virtuelles permettent aux scripts Io de fonctionner de maniĂšre identique dans tout systĂšme. Elles sont actuellement disponibles sous Mac OS X, Linux, BSD, Irix, Win32 et Symbian. Cependant, Ă©crites en C ANSI, elles peuvent ĂȘtre facilement portĂ©es sur de nombreuses autres plates-formes.

Caractéristiques

  • BasĂ© sur les prototypes : hĂ©ritage rĂ©alisĂ© par le clonage des objets et la maintenance d'un lien dynamique entre le clone et l'original.
  • Pur objet : toutes les entitĂ©s manipulĂ©es par Io dĂ©rivent du mĂȘme prototype Object.
  • ramasse-miettes : les objets sont automatiquement allouĂ©s et supprimĂ©s.
  • Types dynamiques : Bien que Io possĂšde une notion de type, les variables n'ont pas de type dĂ©fini, de mĂȘme que les opĂ©rations sur les prototypes. Il existe cependant des mĂ©thodes permettant de vĂ©rifier le type d'un objet.
  • Fortement typĂ© : toutes les interactions se font Ă  l'aide de messages vers les objets. On n'accĂšde jamais Ă  la mĂ©moire directement.
  • InterprĂ©tĂ© : le code source produit n'est pas compilĂ© vers un bytecode mais plutĂŽt converti vers une reprĂ©sentation dans la mĂ©moire.
  • Le code est une donnĂ©e : les blocks de code sont rĂ©injectĂ©s dans les objets et peuvent ĂȘtre modifiĂ©s et crĂ©Ă©s dynamiquement.
  • RĂ©flĂ©chi : consĂ©quence de la rĂ©injection du code, il est possible d'investir les propriĂ©tĂ©s de chaque objet (de mĂȘme pour le code source) lors de l'exĂ©cution.
  • Dynamique : puisque le code est une donnĂ©e, il est possible de changer un programme logique durant son exĂ©cution. Il est aussi possible de changer dynamiquement les attributs et les opĂ©rations sur un objet durant l'exĂ©cution. CombinĂ© avec les prototypes, Io autorise la modification dynamique d'une classe d'objets.

Exemples de code

Io est un langage qui se veut simple et puissant. Voici quelques exemples de code.

Commentaires

 //Les commentaires C++ peuvent ĂȘtre utilisĂ©s
 # tout comme ceux des scripts bash
 /* ou encore les commentaires
 sur plusieurs lignes */

Bonjour tout le monde

La ligne de code suivante fera apparaĂźtre le message Bonjour tout le monde ! Ă  l'Ă©cran.

 "Bonjour tout le monde !" println

Compter les moutons

 for(i, 1, 100,
      mouton := block(i,
      if(i == 1, return "1 mouton")
      return "" .. i .. " moutons"
      )
 )

Voir aussi

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.