Skip to content

Generative Programming

Sam Crawford edited this page Jul 20, 2023 · 5 revisions

This following list provides readings for generative programming (in relative decreasing order of importance) and was migrated from this issue on GitLab.

  1. A Survey of Metaprogramming Languages (Lilis and Savidis 2019)
  2. Overview of Generative Software Development (Czarnecki 2005)
  3. Structured Program Generation Techniques (Smaragdakis, Biboudis, Fourtounis 2017)
  4. Taxonomy of the fundamental concepts of metaprogramming (Damasevicius and Stuikys 2008)
  5. When And How To Develop Domain-Specific Languages (Mernik, Heering, Sloane 2003)
  6. Typed Tagless Final Interpreters (Kiselyov 2012)
  7. Finally Tagless, Partially Evaluated: Tagless Staged Interpreters for Simpler Typed Languages (Carette, Kiselyov, Shan 2007)
  8. Multi-stage programming with functors and monads: Eliminating abstraction overhead from generic code (Carette and Kiselyov 2011)
  9. Mechanizing the Development of Software (Smith 1999)
  10. Partially-Static Data as Free Extension of Algebras (Yallop, Von Glehn, Kammar 2018)
  11. The Three Projections of Doctor Futamura (Sigfpe 2009)
  12. Is there a fourth Futamura projection? (Glück 2009)

This topic list for Generative programming is good:

  1. Generators
  2. Interpreters
  3. Staging
  4. DSLs
  5. Quasi-quotations
  6. Templates
  7. AST transformations
  8. Compile-time reflection
  9. Traits
  10. Class composition
  11. Rewrite systems
  12. Partial evaluation
  13. Nameless de Bruijn binding constructs
  14. Lightweight codular staging
  15. Class morphing
  16. Splicing binders
  17. AOP techniques to achieve separation of concerns
  18. Parameterizing over types (generic programming)
  19. Feature modeling - domain engineering
  20. Composition vs. transformation generation
Clone this wiki locally