Mächtige DSEL
Ziel dieses Artikels war es zum einen, die Techniken hinter Template Metaprogramming zu vermitteln, zum anderen, deren Innovationskraft für C++ aufzuzeigen. Die wahre Stärke von Template Metaprogramming liegt in seinen Eigenschaften einer Domain Specific Embedded Language (DSEL). Das bezeichnet eine Sprache, die auf eine spezielle Domäne ausgerichtet und zudem in die Gastgebersprache eingebettet ist. Anders ausgedrückt: Es ist mit Template Metaprogramming möglich, in der Universalsprache C++ eine mächtige, spezielle Subsprache für besondere Anwendungsbereiche zu definieren. Das Schöne daran ist, dass sowohl die Gast- als auch die Gastgebersprache der C++-Syntax genügen.
Bekannte Beispiele sind die hochperformante Bibliothek Blitz++ [11] für Array-Berechnungen und der Parser-Generator Spirit [12]. Blitz++ bricht durch Template Metaprogramming in die Performance-Domäne von Fortran-Bibliotheken ein [13]. Die Boost-Bibliothek Spirit ermöglicht es, die Grammatik des Parsers vollständig in C++-Syntax zu formulieren. Beide wenden die auf Template Metaprogramming beruhenden Expression Templates [14] an.
Infos
- Erwin Unruh, "Primzahlen": http://www.erwin-unruh.de/primorig.html
- Rainer Grimm, "Reichhaltiges Angebot": Linux-Magazin 05/10, S. 110
- Rainer Grimm, "Erfrischend neu": Linux-Magazin 04/10, S. 116
- Rainer Grimm, "Funktionale Grundzüge": http://www.linux-magazin.de/Online-Artikel/Funktionale-Programmierung-1-Grundzuege
- Andrei Alexandrescu, "On mappings between types and values": C/C++ Users Journal, 08/2000
- Andrei Alexandrescu, "Modern C++ Design": http://www.moderncppdesign.com
- Krzysztof Czarnecki und Ulrich W. Eisenecker, "Generative Programming": http://www.generative-programming.org
- Bibliothek »
type_traits« : http://publib.boulder.ibm.com/infocenter/comphelp/v9v111/index.jsp?topic=/com.ibm.xlcpp9.aix.doc/standlib/header_type_traits.htm - Memcpy: http://www.cplusplus.com/reference/clibrary/cstring/memcpy/
- Loop Unwinding: http://en.wikipedia.org/wiki/Loop_unwinding
- Bibliothek Blitz++: http://www.oonumerics.org/blitz/
- Bibliothek Spirit: http://boost-spirit.com/home/
- Benchmarks Blitz++: http://www.oonumerics.org/blitz/benchmarks/
- Expression Templates: http://www.angelikalanger.com/Articles/Cuj/ExpressionTemplates/ExpressionTemplates.htm
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 7 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





