Metaprogrammierung ist in der Informatik der Erstellung von Computerprogrammen („Metaprogramme“), die Computerprogramma erzeugen. Das ist es, was du sagst, der Computer steht vor der Arbeit und der Prozess der Programmierung. Es ist möglich, den Fehler zu beheben, um Fehler zu vermeiden. Metaprogrammierung ermöglicht es Ihnen, die Programmiersprache durch die Programmierer um neue Konstruktionen zu erweitern. Daher ist in homoonikischen Programmiersprachen ein sehr effektives Mittel zur Entwicklung von Domänensprachen .
Grundkonzepte
Fälle sterben Programmiersprache homoikonisch ist, Wie Lisp und sein Dialekt Kann sterben Programm-Erzeugung einge Durch das Meta Programm direkt auf der Ebene der Programm – Struktur ERFOLG. Fälle Homoikonizität nicht gegeben ist, Kann sterben Programmerzeugung aber behelfsweise lexikalisch ERFOLG, Wobei das Meta Programm des Quelltext Dezember Zielprogramm Erzeugt. In dieser (fehleranfälliger) Form kann durch die Erstellung der Programmiersprache eine Rede durchgeführt werden.
Ein abgeschwächtes Mittel zur Metaprogrammierung ist sterben Introspektion , bei der Die Struktur des Zielprogramms allerdings BEREITS zum zeitpunkt wo Erstellung Dezember Meta Programm Einander festliegen.
Metaprogrammierung ist einer der konzeptionellen Grundlagen des Programmiersprachen-Compilers . Sie bedient aber den Wunsch adaptive Softwaresysteme zu Entwickeln Auch, sterben sich leicht an sich ändernde Rahmenbedingungen Entweder zur Laufzeit oder der Innerhalb Entwicklungsphase Können angepasst. [1]
Klassifizierung
Metaprogrammierung lässt sich nach verschiedenen Ansichten: [2]
Nach Bearbeitungszeitpunkt:
- statisch (Sir Compiler-Zeit)
- dynamisch (saure Laufzeit)
Nach Sprachen:
- homogen (Metasprache ist Objektsprache)
- heterogen (sonst)
Nach oben
- mehrstufig (Objektsprache ist selbst Metasprache)
- Single (Sohn)
Beispiele
Metaprogrammierung in Homoikonischen Programmierung Sprachen
Das Makro – System von Lisp und Sein Akzent ist aufgrund wo Homoikonizität der Sprache der mächtigste DERZEIT verfügbaren Werkzeugs zur Metaprogrammierung, wenn this hier auf die Ebene des Programm – Struktur, Technisch Auch Auf das Parsebaums erfolgt. Es ist die folgende Definition in Common Lisp , die WHILE-Schleife definiert . [3] Eine Lösung ist in Common Lisp in der üblichen Form nicht enthalten.
( Defmacro während ( Ltg & Stück Stück ) ( lassen (( Name ( gensym ))) ` ( Marken (( , Name () ( wenn , cond ( Progne , @ Körper ( , Name ))))) ( , Name ))) )
Diese Definition liefert der WHILE-Schleife eine vollständige Rekursion Zurück . Im Anschluss kann das neue Sprachkonstrukte direkt verwendet werden:
( Lassen Sie (( a 0 )) ( while ( < a 10 ) ( drucken a ) ( setq a ( 1+ a ))))
Die Ausführung dieses Programms führt dann zu Ausgabe der Zahlen von 0 bis 9.
XSL ist derjenige, der gleichfalls Homoikon-Programmierung verdient. Sie beschreibt die Transformation von XML- Daten. Dabei ist XSL simultan valides XML, das durch die Homoikonizität gegeben ist.
Behelfsweise Metaprogrammierung in nicht-homoikonischen Programmiersprachen
- Das Textmakro in C befindet sich, der mittlere
#define
, der C-Compiler, der Quelltext, der durch Makroexpansion entsteht. Dies war das erste Mal in Deutschland. Dies ist ein astabiles und sehr fehleranfällig. - C ++ – Metaprogrammierung de Programmierung der Metaprogrammierung innerhalb der Programmiersprache C ++. Bitte beachten Sie C ++ – Vorlagen.
- Weder vereinfachtes Szenario Horen Genau Genre Gleichfalls Zur Metaprogrammierung, Who Is Beispiel JavaScript- Code für den Browser Ein serverseitiges PHP- Skript. Dabei weiß man, wie man programmierbar wird. Da der Programmierer Zeugung aus der Ebene des Quelltextes folgt, ist es der Fall auch sehr fehleranfällig.
Metaprogrammierung in der Psychologie
Speichern Sie sie Neurophysiologen John Cunningham Lilly beschreibt Metaprogrammierung der durch Metakommunikation folgenden Programmierung des menschlichen Biocomputers .
Literatur
Informatik
- Patrick M. Krusenotto Funktionelle Programmierung und Metaprogrammierung – Interaktiv im gemeinsamen Lisp Springer-Verlag 2016, ISBN 978-3-658-13743-4
- Thomas Maier-Komor: Methoden der Metaprogrammierung zur Rekonfiguration von Software eingegebetteter Systeme . Dr. Hut; Auflage: 1. Aufl. (31. Januar 2007). ISBN 978-3899634709
- Oliver Vogel, Ingo Arnold, Arif Chughtai, Timo Kehrer: Softwarearchitektur: Ein umfassender Rahmen und Leitfaden für Praktiker . Springer , Berlin ; Auflage: 2011 (17. September 2011). ISBN 978-3642197352
Psychologie
- John C. Lilly: Programmierung und Metaprogrammierung des menschlichen Biocomputers . Phanom-Verlag; Auflage: 1., Aufl. (18. April 2010). ISBN 978-3933321688
Weblinks
- Metaprogrammierung – Skripte Kapitel (Uni Passau; PDF, 195 kB)
Einzelstunden
- Hochspringen↑ Doga Arinir: Mehrdimensionale Separation der Belange in der Softwareentwicklung durch Feature Components . W3L GmbH; Auflage: 1 (18. Juli 2007). ISBN 978-3937137537 . Seite 50/51
- Hochspringen↑ Metaprogrammierung – Skriptum (Uni Passau; PDF, 195 KB)
- Hochspringen↑ Patrick M. Kruse Otto Funktional Programmierung und Metaprogrammierung – Interactive in Common Lisp Springer-Verlag 2016, ISBN 978-3-658-13743-4 . Seite 275