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

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





Article:

La métaprogrammation, nommée par analogie avec les métadonnées et les métaclasses[réf. souhaitée], se définit comme une écriture de programmes qui traitent des données évoquant elles-mêmes des programmes. Dans le programme auto-modifiant, qui est un cas particulier,le programme opère sur la base de ses instructions.
Le but de l'utilisation de la métaprogrammation est d'engendrer du code interprété par un compilateur et amenant à une constance dans le résultat, rendant inutile un calcul manuel.Le compilateur permet aussi de réduire le temps d'exécution du programme si le programme avait calculé le résultat constant comme ce qu'il fait pour les résultats variables.
Cette méthode s'applique également entre autres ,en dehors des calculs,au remplissage de données constantes comme des tableaux ou des structures plus difficiles. Seulement cette technique est valable uniquement pour des valeurs constantes. Et assurément, dans le cas où une donnée utilisée par le métaprogramme est une entrée du programme, par exemple une saisie de l'utilisateur, le programme doit être exécuté auparavant pour qu'il l'assimile. L'interprétation d'un tel métaprogramme est alors impossible pour un compilateur. l'optimisation par métaprogrammation serait alors entièrement infaisable.
l'écriture de données contenant un programme adressé au compilateur ne constitue pas la limite de la métaprogrammation. Seulement, elle peut être le résultat de la manipulation d'un programme dépendant d'entrées variables.Par exemple,le déplacement du code d'un métaprogramme peut être établi par un programme selon ses entrées. Ce métaprogramme peut alors être appliqué à une future exécution ou une génération de code.
La manière de conduire le processus 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'usage d'un protocole à méta-objets (en: MOP) tel le MOP de CLOS ou Smalltalk;
l'emploi de macros.
Les deux premières techniques sont utilisables pour les langages à typage statique .La méta-programmation adopte, dans ce cas là, une forme puissante mais limitée. Le principe du générateur de code consiste entre autres, à monter un compilateur contenant la sémantique d'un langage donné, avec des ajouts . Cette approche n'est donc pas facile à manier. La programmation à base de templates amène vers l'établissement des opérateurs concernant des types de données absolument divergentes , avantageux en C++. Les templates de Common Lisp sont plus globaux. Ces deux techniques concernent seulement la phase de compilation. Comme MetaOcaml,divers langages académiques donnent un typage garantissant que les programmes générés par le méta-programme sont correctement typés .
Les langages réflexifs proposent, 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) avec des possibilités d'introspection et de transformation en cours d'exécution. Les protocoles à méta-objets permettent l'alternative de spécifier le comportement au niveau des classes elles-mêmes.La caractérisation du comportement au niveau des classes elles-mêmes peut être acquise par les protocoles à méta-objets considérant les classes, les méthodes, semblables à 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