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

* Agence Typo3 Toulon




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

Agence Typo3 Toulon





Article:

Dénommée par similarité avec les métadonnées et les métaclasses[réf. souhaitée], la métaprogrammation, désigne l'écriture de programmes manipulant des données exprimant elles-mêmes des programmes. Il s'agit de programme auto-modifiant, dans le cas particulier où le programme opère sur la base de ses instructions.
La métaprogrammation peut être utilisée pour produire du code compris par un compilateur et fournissant un résultat constant, pour éviter un calcul manuel. Il permet aussi de minimiser le temps qu'accapare le programme pour son exécution si le résultat constant avait été calculé d'une manière classique par le programme, comme pour les résultats variables.
Cette méthode ne s'étend pas uniquement aux calculs mais aussi au chargement de données constantes telles que des tableaux ou des structures plus délicats. Pourtant seules les valeurs techniques sont admises par cette technique. Assurément, si une donnée manipulée par le métaprogramme est une entrée du programme, par exemple une saisie de l'utilisateur, le programme doit être exécute auparavant pour qu'il l'assimile. l'interpretation d'un tel métaprogramme est alors impossible pour un compilateur. l'optimisation au moyen de la métaprogrammation est alors intégralement perdue.
La métaprogrammation ne se limite pas seulement à l'écriture de données comprenant un programme destiné au compilateur. Elle peut simplement être le résultat de la manipulation d'un programme dépendant d'entrées variables. Par exemple, un programme peut, selon ses entrées, déplacer le code d'un métaprogramme. Ce métaprogramme peut alors être prédestiné à une exécution ultérieure ou une génération de code.
La manière d'opérer existe sous différentes formes :
l'usage de générateurs de code ;
la programmation avec des templates, ou modèles (dans C++ ou Common Lisp) ;
l'appel aux d'un protocole à méta-objets (en: MOP) comme le MOP de CLOS ou Smalltalk ;
l'appel aux macros.
Pour les langages à typage statique,les deux premières techniques peuvent être utilisées .La méta-programmation admet dans ce cas là, une forme puissante mais limitée.En effet, le principe du générateur de code revient à monter un compilateur intégrant la sémantique d'un langage donné, avec des ajouts. Cette approche est donc difficilement portable. La programmation à base de templates permet d'installer des opérateurs relatifs à des types de données complètement divergentes, pratique en C++. Les templates de Common Lisp sont plus globaux. Ces deux techniques conviennent seulement la phase de compilation.Comme MetaOcaml, plusieurs langages académiques assignent un typage qui éloigne les risques que les programmes générés par le méta-programme ne sont pas convenablement typés.
Les langages réflexifs amènent des possibilités d'introspection et de modification en cours de traitement, non seulement des valeurs et objets du domaine d'une application mais aussi du comportement du système, comme le langage avec ses bibliothèques standards. Les protocoles à méta-objets fournissent la potentialité de spécifier le comportement au niveau des classes elles-mêmes, la spécification du comportement au niveau des classes elles-mêmes peut être acquise par les protocoles à méta-objets, les classes, les méthodes y sont considérées comme des objets d'un domaine particulier.






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