Difference between revisions of "Kurs/Metaprogrammering i C++-templates"
< Kurs
Jump to navigation
Jump to search
(opprettet siden) |
(kursbeskrivelse basert på epost fra deinoff) |
||
Line 3: | Line 3: | ||
<b>Kursholder</b>: Stian Valentin Eriksen-Deinoff<BR> | <b>Kursholder</b>: Stian Valentin Eriksen-Deinoff<BR> | ||
− | + | Templates i C++ er et kraftig verktøy som kan brukes til mange ting, | |
+ | faktisk så mange ting at de er et turingkomplett språk i seg selv! Dette | ||
+ | kurset gir et innblikk i hva metaprogrammering er og hvordan begynne å | ||
+ | skrive sin egen metaprogramkode. | ||
+ | |||
+ | Metaprogrammering handler om å skrive programmer som kjører i kompilatoren. | ||
+ | Ved hjelp av dette kan programmereren skrive høy-nivå kode som genererer | ||
+ | lav-nivå optimaliseringer. Dette kurset gir en innføring i noen av | ||
+ | teknikkene man kan bruke for gjøre dette ved hjelp av avanserte templates i | ||
+ | C++, og vil gi relevante eksempler for å fortsette på egen hånd. | ||
+ | |||
+ | Kurset kommer til å inneholde: | ||
+ | * Historien til metaprogrammering. | ||
+ | ** Hvem «oppfant» metaprogrammering? | ||
+ | ** Hva er metaprogrammering? | ||
+ | * Templates i C++ (Lynrepetisjon av syntaks) | ||
+ | ** Konstanter som templateparametre | ||
+ | ** Partial og full spesialisering | ||
+ | * Eksempler: | ||
+ | ** Constant-time factorial og fibonacci. | ||
+ | ** Inline compile time loop-unrolling. | ||
+ | ** Tilrettelegging for metaprogrammering i C++11. |
Revision as of 21:50, 12 November 2013
Tid: Torsdag 14. november 2013, kl. 18:15
Sted: KJL5
Kursholder: Stian Valentin Eriksen-Deinoff
Templates i C++ er et kraftig verktøy som kan brukes til mange ting, faktisk så mange ting at de er et turingkomplett språk i seg selv! Dette kurset gir et innblikk i hva metaprogrammering er og hvordan begynne å skrive sin egen metaprogramkode.
Metaprogrammering handler om å skrive programmer som kjører i kompilatoren. Ved hjelp av dette kan programmereren skrive høy-nivå kode som genererer lav-nivå optimaliseringer. Dette kurset gir en innføring i noen av teknikkene man kan bruke for gjøre dette ved hjelp av avanserte templates i C++, og vil gi relevante eksempler for å fortsette på egen hånd.
Kurset kommer til å inneholde:
- Historien til metaprogrammering.
- Hvem «oppfant» metaprogrammering?
- Hva er metaprogrammering?
- Templates i C++ (Lynrepetisjon av syntaks)
- Konstanter som templateparametre
- Partial og full spesialisering
- Eksempler:
- Constant-time factorial og fibonacci.
- Inline compile time loop-unrolling.
- Tilrettelegging for metaprogrammering i C++11.