Vad är metaprogrammering?
Metaprogrammering är processen att skriva datorprogram som i sin tur skriver andra program. Metaprogrammeringsprocessen tillåter större flexibilitet för dataprogrammerare eftersom arbete som vanligtvis utförs under runtime-perioden tilldelas kompileringstiden. Den här processen frigör programmerarens tid att fokusera på andra uppgifter eftersom den minskar den tid det tar manuellt att skriva ett programkod. Återkompilering är onödigt eftersom metaprogrammering gör det möjligt för program att hantera nya situationer med högre effektivitet. "Metalanguage" är termen som ges till datorspråket som metaprogrammet använder.
Objektspråk är datorspråket för de program som skrivs av metaprogrammeringsprocessen. Reflexivitet är en term som ges till metallspråk, som också kan åstadkomma metaprogrammering. Metaprogrammering fungerar på olika sätt. Ett sätt är att applikationsprogrammeringsgränssnittet tillåter programmeringskoden åtkomst till insidan av körmotorn.
Ett annat sätt som metaprogrammering fungerar är genom att låta program skriva andra program genom den dynamiska exekveringsprocessen. I detta fall används stränguttryck i denna process. Även om samma språk kan användas i dessa två processer är det inte ovanligt att språken föredrar en process framför den andra.
Metaprogrammering fungerar också genom att kringgå språket. Det möjliggör förändring av språk genom programomvandlingssystem. Denna procedur ger metaprogrammering friheten att använda språk även om språket inte använder några metaprogrammeringsegenskaper.
En källkod behövs inte för metaprogrammering. Det kan göras genom en inkrementell sammanställning eller med program som kan ändras av runtime. Datorn langaugae Lisp är det gynnade språket för metaprogrammeringsprocessen. Detta beror på enkelheten i denna typ av datorspråk och dess kraft.
Metaprogrammering som använder Lisp-språket fungerar genom att tillåta utvärdering av koden under programperiodens tidsperiod, i motsats till runtime-perioden. Denna process gör metaprogrammeringsspråket och värdprogrammeringsspråket samma. När detta inträffar kan dessa Lisp-rutiner återvinnas för metaprogrammeringsprocessen.
Andra språk har använt denna exakta process med integrationen av en programtolk. Denna tolk fungerar med data i programmet. Domänspecifika programmeringsspråk i metaprogrammering är en annan form som skapar parsers och lexical analysatorer. Dessa låter användaren använda regelbundna uttryck för att definiera språket.