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

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

Agence Prestashop Toulon





Article:

Nommée par analogie avec les métadonnées et les métaclasses[réf. souhaitée], la métaprogrammation désigne l'écriture de programmes qui manipule des données évoquant elles-mêmes des programmes. Dans le cas particulier où le programme opère sur la base de ses propres instructions, on parle de programme auto-modifiant.
Elle peut être exécutée afin de concevoir du code qui peut être transcrit par un compilateur et amenant à une constance dans le résultat, afin de ne pas avoir recours à un calcul manuel. Il permet pareillement d'abréger le temps que prend le programme pour s'exécuter si le résultat constant avait été calculé d'une manière classique,par le programme, comme pour les résultats variables.
La méthode, décrite précédemment, ne traite pas uniquement aux calculs mais également au remplissage de données constantes telles que des tableaux ou des structures plus rudes. Cependant, cette technique ne fonctionne que pour des valeurs constantes. Assurément, dans le cas où une donnée utilisée par le métaprogramme représente une entrée du programme, par exemple une saisie de l'utilisateur, le programme doit être exécuté auparavant pour qu'il la reconnaisse. Il est donc impensable qu'un tel métaprogramme soit interprété par un compilateur. La chance d'obtenir l'optimisation par le biais de la métaprogrammation est alors perdue en totalité.
l'écriture de données, incluant un programme destiné au compilateur, ne constitue pas la limite de la métaprogrammation. Elle peut simplement être le résultat de la manipulation d'un programme accessoire aux 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 appliqué à une exécution ultérieure ou une génération de code.
Il existe différentes façons de conduire le processus :
l'appel aux générateurs de code;
la programmation avec des templates, ou modèles ,dans le C++ ou le Common Lisp;
l'utilisation d'un protocole à méta-objets en: MOP, tel le MOP de CLOS ou Smalltalk;
l'usage de macros.
Pour les langages à typage statique,les deux premières techniques peuvent être utilisées . C'est une forme puissante, mais limitée, de méta-programmation. Le principe du générateur de code revient ,en effet, à développer un compilateur comportant , avec des ajouts,la sémantique d'un langage donné . Cette approche n'est donc pas pratique. La programmation à base de templates permet d' installer des opérateurs concernant des types de données complètement distinctes , son utilité se fait beaucoup sentir en C++. Les templates de Common Lisp sont plus globaux. Ces deux techniques touchent seulement la phase de compilation.Comme MetaOcaml, divers langages académiques affectent 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 donnent des ressources d'introspection et de modification en cours d'exécution, non seulement des valeurs et objets du domaine d'une application mais aussi du comportement du système, à prendre comme le langage et ses bibliothèques standards. Les protocoles à méta-objets fournissent la latitude de caractériser 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, en effet, 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