Métaprogrammation est le processus de l'écriture de programmes informatiques qui, à son tour, écrire d'autres programmes. Le processus de méta-programmation permet une plus grande flexibilité pour les programmeurs informatiques parce que le travail habituellement effectué lors de la période d'exécution est répartie sur la période de temps de compilation. Ce processus libère le temps du programmeur de se concentrer sur d'autres tâches, car il permet de réduire le temps qu'il faut écrire manuellement le code d'un programme. Recompilation est inutile parce que métaprogrammation permet à des programmes pour lutter contre de nouvelles situations avec plus d'efficacité. «Métalangage» est le terme donné à la langue de l'ordinateur qui l'utilise metaprogram.
Le Langage objet est le langage informatique de ces programmes qui sont écrits par le processus de programmation de méta. La réflexivité est un terme donné à métalangage, qui peut également provoquer metaprogramming. Métaprogrammation œuvres de diverses manières. Une solution est de l'interface de programmation d'application pour permettre au code de programmation pour accéder à l'intérieur du moteur d'exécution.
Une autre façon que les œuvres métaprogrammation est en permettant aux programmes d'écrire d'autres programmes à travers le processus d'exécution dynamique. Dans ce cas, les expressions de chaîne sont utilisées dans ce processus. Bien que la même langue puisse être utilisée dans ces deux processus, il n'est pas inhabituel pour les langues pour favoriser un processus sur l'autre.
Métaprogrammation travaille également en contournant la langue. Il permet la modification des langues à travers des systèmes de transformation de programme. Cette procédure donne metaprogramming la liberté d'utiliser les langues même si la langue n'emploie pas de caractéristique métaprogrammation.
Un code source n'est pas nécessaire pour metaprogramming. Il peut être fait par une compilation incrémentielle ou par des programmes runtime-changeables. L'ordinateur langaugae Lisp est le langage de prédilection pour le processus de méta-programmation. C'est à cause de la simplicité de ce type de langage informatique ainsi que de sa puissance.
Métaprogrammation qui utilise le langage Lisp fonctionne en permettant l'évaluation de code pendant la période de temps de définition de programme, en contraste avec la période d'exécution. Ce procédé rend l'metaprogramming langue et du langage de programmation hôte de la même. Lorsque cela se produit, ce Lisp routines peut être recyclé pour le processus de méta-programmation.
Les autres langues ont utilisé ce processus exact avec l'intégration d'un interpréteur de programme. Cet interprète travaille avec les données dans le programme. Langages de programmation spécifiques au domaine de metaprogramming sont une autre forme que créer des analyseurs et des analyseurs lexicaux. Ceux-ci permettent à l'utilisateur d'utiliser des expressions régulières pour définir la langue.