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

* Agence Joomla 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 Joomla Toulon





Article:

La métaprogrammation, nommée par similarité avec les métadonnées et les métaclasses[réf. souhaitée], évoque l'écriture de programmes qui manipulent des données décrivant elles-mêmes des programmes. Dans le cas particulier où le programme traite ses propres instructions, il s'agit de programme auto-modifiant.
La métaprogrammation peut être exécutée pour engendrer du code qui peut être transcrit par un compilateur et amenant à une constance dans le résultat, excluant un calcul manuel. Le compilateur permet pareillement de diminuer le temps que prend le programme pour s'exécuter si le programme avait calculé le résultat constant comme ce qu'il fait pour les résultats constants.
La méthode décrite précédemment s'applique également en dehors des calculs entre autres dans le chargement de données constantes comme des tableaux ou des structures plus complexes. Néanmoins, seules les valeurs techniques sont admises par cette technique. Effectivement, dans le cas où une donnée utilisée par le métaprogramme est une entrée du programme, exemple une saisie de l'utilisateur, elle ne peut pas être connue avant l'exécution du programme. Donc, un tel métaprogramme ne peut être interprété par un compilateur. l'optimisation au moyen de la métaprogrammation est alors intégralement perdue.
l'écriture de données comportant un programme destiné au compilateur ne constitue pas la limite de la métaprogrammation. Elle peut simplement être la manipulation d'un programme dépendant d'entrées variables.Par exemple, la mutation du code d'un métaprogramme peut être fait par un programme en fonction de ses entrées. Ce métaprogramme peut alors être affecté à une exécution ultérieure ou une génération de code.
La manière de procéder existe sous différentes formes :
l'appel aux de générateurs de code;
la programmation avec des templates, ou modèles (dans C++ ou Common Lisp);
l'utilisation d'un protocole à méta-objets (en: MOP) comme le MOP de CLOS ou Smalltalk;
l'appel aux macros.
Les deux premières techniques peuvent être utilisées pour les langages à typage statique . Ceci correspond à une forme puissante mais limitée de méta-programmation. Le principe du générateur de code consiste entre autres, à construire un compilateur qui renferme la sémantique d'un langage donné, avec des ajouts . Cette approche n'est donc pas facile. La programmation à base de templates permet d'installer des opérateurs concernant des types de données totalement discordantes; son utilité se fait fortement sentir en C++. Les templates de Common Lisp sont plus généraux. Ces deux techniques entre seulement dans la phase de compilation. Différents langages académiques, comme le MetaOcaml par exemple, assignent un typage qui éloigne les risques que les programmes obtenus par le méta-programme ne sont pas correctement typés.
Non seulement les langages réflexifs fournissent des possibilités d'introspection et de modification en cours de traitement, mais aussi des valeurs et objets du domaine d'une application mais du comportement du système, entendre comme le langage plus ses bibliothèques standards. Les protocoles à méta-objets permettent la capacité de spécifier le comportement au niveau des classes elles-mêmes, la détermination du comportement au niveau des classes elles-mêmes peut être acquise par les protocoles à méta-objets, on y considère les classes, les méthodes, 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