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

* Developpeur 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

Developpeur Joomla Toulon





Article:

Appelée par analogie avec les métadonnées et les métaclasses[réf. souhaitée],la métaprogrammation, se définit comme une écriture de programmes manipulant des données exposant 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 employée pour produire du code compris par un compilateur et fournissant un résultat constant, pour échapper à un calcul manuel. Il permet également d'abréger le temps d'exécution du programme 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 s'applique également en dehors des calculs entre autres, dans le remplissage de données constantes comme des tableaux ou des structures plus difficiles. Mais seules les valeurs techniques sont admises par cette technique. En effet, dans le cas où une donnée manipulée par le métaprogramme correspond à une entrée du programme, exemple une saisie de l'utilisateur, le programme doit être exécuté auparavant pour qu'il la valide. l'interpretation d'un tel métaprogramme est alors impossible pour un compilateur. La capacité de réussir l'optimisation au moyen de la métaprogrammation est alors totalement perdue.
La métaprogrammation ne se limite pas seulement à l'écriture de données comportant un programme adressé au compilateur. Elle peut simplement être la manipulation d'un programme relevant d'entrées variables.Par exemple, selon ses entrées, un programme peut déplacer le code d'un métaprogramme. Ce métaprogramme peut alors être destiné à une exécution ultérieure ou une génération de code.
La manière de procéder existe sous différentes formes :
l'utilisation de générateurs de code;
la programmation avec des templates ou modèles,dans C++ ou Common Lisp;
l'appel à un protocole à méta-objets (en: MOP) tel le MOP de CLOS ou Smalltalk;
l'emploi de macros.
Pour les langages à typage statique,les deux premières techniques sont disponibles .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 comportant la sémantique d'un langage donné ,avec des ajouts. Cette approche n'est donc pas facilement maniable. La programmation à base de templates amène vers la structuration,des opérateurs concernant des types de données totalement distinctes, c'est utile en C++. Les templates de Common Lisp sont plus universels. Ces deux techniques entrent seulement dans la phase de compilation. Certains langages académiques ,comme MetaOcaml par exemple, alimentent un typage qui éloigne les risques selon lesquels les programmes obtenus par le méta-programme ne sont pas correctement typés .
Les langages réflexifs produisent non seulement des possibilités d'introspection et de modification en cours d'exécution ,mais aussi des valeurs et objets du domaine d'une application mais du comportement du système, comme le langage et ses bibliothèques standards. Les protocoles à méta-objets laisse la potentialité 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 obtenue 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