Metaprogrammering
Metaprogrammering er å skrive dataprogrammer som har evnen til å behandle programmer som sine data. Det betyr at et program kan være utformet for å lese, vise, analysere eller transformere andre programmer og til og med endre seg selv mens det kjører.[1][2] I noen tilfeller kan det redusere antall linjer med kode (dermed redusere utviklingstiden).[trenger referanse]
Språket som et metaprogram er skrevet i kalles et metaspråk. Språk for programmer som er manipulert kalles objektspråk. Når et programmeringsspråk selv har evnen til å være sitt eget metaspråk kalles dette refleksjon. Refleksjon er et kraftig verktøy i programmeringsspråk som legger til rette for metaprogrammering. I et språk hvor språket selv er en førsteklasses datatype (som i Lisp, Prolog, SNOBOL) er også veldig nyttig, dette er kjent som homoikonisitet. Generisk programmering benytter seg gjerne av en slags metaprogrammeringsfunksjonalitet i de språk som har støtte for det.
Implementeringer
Templatmetaprogrammering
Utdypende artikkel: Templatmetaprogrammering
- «X macros» i programmeringsspråket C
- Templates i programmeringsspråket C++
Makroer
- Scheme sine hygieniske makroer
- Template Haskell
- MakroML
Referanser
- v
- d
- r
- Aktørbasert
- Aspektorientert
- Dataflyt
- Flytbasert
- Deklarativ
- Deriverbar
- Domenespesifikk
- Dynamisk
- Esoterisk
- Funksjonell
- Følbart
- Hendelsesdrevet
- Imperativ
- Malprosessor
- Makro
- Metaprogrammering
- Klassebasert
- Kommandokø (pipeline)
- Konkatenativ
- Logisk
- Objektbasert
- Objektorientert
- Prosedyrisk
- Prototypebasert
- Regelbasert
- Samtidig
- Selvmodifiserende
- Skripting
- Stakkorientert
- Synkront
- Tabell
- Utvidbar
- 1. generasjon
- 2. generasjon
- 3. generasjon
- 4. generasjon
- 5. generasjon