WEB2007 ALSO SPEAKS ENGLISH
06 44 00 14 84 (ou 0033644001484)

* Joomla Toulouse




***Web2007 est un bureau indépendant situé à Genève et a l'habitude de travailler pour des entreprises PARTOUT en France et en Europe

Joomla Toulouse





Article:

Dans un langage dynamique, on peut transformer dynamiquement un système d'objets ou de types. Il est alors question de créer de nouveaux objets à partir d'une définition disponible au runtime, ou basée sur le mixin de plusieurs types ou objets. Il s'agit aussi de l'altération de l'arbre d'héritage et ainsi altérer la manière dont les types existants se comportent, notamment pour ce qui concerne l'appel de méthodes.
Il existe des langages dynamiques qui utilisent la notion de continuation. Une continuation se présente comme un état d'exécution qui peut être réinvoqué. Par exemple, un analyseur syntaxique peut retourner un résultat intermédiaire et une continuation qui, lorsqu'elle est réinvoquée peut continuer à analyser l'entrée. Les continuations peuvent interagir de manière très complexe avec la portée, spécialement pour ce qui concerne les fermetures lexicales. Pour cette raison, de nombreux langages dynamiques ne fournissent pas de continuations.
La réflexion est disponible dans de nombreux langages dynamiques. Elle implique typiquement l'introspection, c'est-à-dire l'analyse des types et des médatadonnées. Elle renferme aussi l'évaluation et la modification du programme comme données, telle que les fonctionnalités fournies pas le Lisp pour l'analyse de S-expressions, c'est l'intercession.
Un nombre limité de langages dynamiques fournissent des fonctionnalités qui combinent l'introspection de code et l'évaluation en une fonctionnalité qui s'appelle macro. La plupart des programmeurs aujourd'hui connaît les macros de C ou C++ qui sont une fonctionnalité statique.
Le résultat immédiat est le changement de chaînes dans le texte du programme avant sa compilation. Or dans les langages dynamiques, les macros donnent ac au fonctionnement interne du compilateur et un ac total à l'interpréteur, machine virtuelle, ou runtime, permettant la définition d'extensions de langage qui peuvent améliorer le code généré ou de modifier la syntaxe du langage. On parle de macro hygiénique en matière de Lisp, pour distinguer ces macros de celles qui sont substituées à la compilation comme du texte.
En ce qui concerne la programmation orientée objet, une classe constitue une sorte de module qui permet de créer un sous-ensemble d'objets. La classe décrit comment se comportent ses objets, fournit leur interface et compose la structure de leur état. La classe permet de créer de nouveaux objets au moyen d'un mécanisme appelé instanciation. Ce mécanisme peut se décomposer en deux opérations :
Dans des environnements de programmation réflexifs, les classes peuvent être considérées comme des objets à part entière créés à partir du mécanisme d'instanciation (alloc (); init()). Dans ce cas, toutes les classes peuvent être vues comme des instances créées à la base à partir d'une même classe.






****Web2007 est un bureau indépendant situé à Genève et a l'habitude de travailler pour des entreprises PARTOUT en France et en Europe