Skip to main content

Generative programming (GP) with C++

  • Miscellaneous
  • Conference paper
  • First Online:
Modular Programming Languages (JMLC 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1204))

Included in the following conference series:

Abstract

This paper gives a brief summary of generative programming (GP) and its main principles. To investigate GP and for implementing generators usually new languages are developed and deployed in research. But it seems not to be imperative to base work on new languages. Therefore the qualification of the multiparadigm language C++ will be examined. The effectiveness of C++ for GP as well as basic idioms and techniques are explored in more detail. This includes statically and dynamically configured systems, migrating from generic to generative programming, compositional use of templates, delaying code injection in statically configured systems, controlling virtualization of functions, interface extension and adding properties by inheriting from template parameters, and expressing constraints for template parameters of related classes.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. ANSI X3J16, Working Paper for Draft Proposed International Standard for Information Systems — Programming Language C++, X3J16/95-0185, WG21/N0785,26. September 1995, ftp://research.att.com/dist/c++std/WP

    Google Scholar 

  2. D. Batory and S. O'Malley, The Design and Implementation of Hierarchical Software Systems With Reusable Components, in: ACM Transactions on Software Engineering and Methodology, Vol 1(4), October 1992

    Google Scholar 

  3. D. Batory, Subjectivity and GenVoca Generatos, in: [Sit96], pp. 166–175

    Google Scholar 

  4. D. Batory, Software System Generators, Architectures, and Reuse. Tutorial Notes for the International Conference on Software Reuse '96 (Orlando), 1996

    Google Scholar 

  5. U. Breymann, Die C++ Standard Template Library, Addison-Wesley, 1996

    Google Scholar 

  6. J. Coplien, Advanced C++ Programming Styles and Idioms, Addison-Wesley, 1992

    Google Scholar 

  7. K. Czarnecki, “Separation of Concerns” — objektorientierte Frameworks und das generative Paradigma, in: OBJEKTspektrum, 6/96, pp. 35–40

    Google Scholar 

  8. K. Czarnecki, Transformationen in Smalltalk, in: OBJEKTspektrum, 6/96, pp. 86–95

    Google Scholar 

  9. U. Eisenecker, Exceptions in Libraries. In: Pre-Austin Mailing, Document Number X3J16/95-0006 (WG21/N0606)

    Google Scholar 

  10. U. Eisenecker, Recht auf Fehler, Strategien zur Fehlerbehandlung in C++-Klassenbibliotheken, in: iX, 6/1995, pp. 184–189

    Google Scholar 

  11. U. Eisenecker, Typisierung und Polymorphic in C++, in: OBJEKTspektrum, 5/1995, pp. 81–83

    Google Scholar 

  12. U. Eisenecker, Templates statt Vererbung, in: OBJEKTspektrum, 4/1996, pp. 92–95

    Google Scholar 

  13. U. Eisenecker, Attribute im Zugriff, in: OBJEKTspektrum, 5/1996, pp. 98–101

    Google Scholar 

  14. U. Eisenecker, “Das generative Paradigma” oder “Was kommt nach der Objektorientierung?”, in: OBJEKTspektrum, 6/96, pp. 30–34

    Google Scholar 

  15. U. Eisenecker, Generatives Programmieren mit C++, in: OBJEKTspektrum, 6/1996, pp. 79–84

    Google Scholar 

  16. E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns, Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995

    Google Scholar 

  17. A. Goldberg and K. Rubin, Succeeding with Objects, Addison-Wesley, 1995

    Google Scholar 

  18. G. Kiczales, J. Irwin, J. Lamping, J.-M. Lointier, C. V. Lopes, Ch. Maeda, and A. Mendhekar, Aspect-Oriented Programming, A Position Paper From the Xerox PARC Aspect-Oriented Programming Project, position paper for the ECOOP'96 Workshop on Adaptability in Object-Oriented Software Development, 1996, http:/www.parc.xerox.com/spl/projects/aop/

    Google Scholar 

  19. D. R. Musser and A. A. Stepanov, Algorithm-Oriented Generic Libraries, in: Software Practice and Experience, Vol 24(7), 1994

    Google Scholar 

  20. D. R. Musser and A. Saini, STL Tutorial and Reference Guide. C++ Programming with the Standard Template Library, Addison-Wesley, 1996

    Google Scholar 

  21. Ch. Simonyi, The Death of Computer Languages, The Birth of Intentional Programming, Technical Report MSR-TR-95-52, Microsoft Research, 1995

    Google Scholar 

  22. Ch. Simonyi, Intentional Programming — Innovation in the Legacy Age, Presented at IFIP WG 2.1 meeting, June 4, 1996 (for more information about IP see http://www.research.microsoft.com/research/ip/)

    Google Scholar 

  23. M. Sitaraman (Ed.), Fourth International Conference on Software Reuse, April 23–26, 1996, Orlando Florida, IEEE Computer Society Press, 1996

    Google Scholar 

  24. A. Stepanov and M. Lee, The Standard Template Library, Hewlett-Packard Laboratories, California, 1994, ftp://butler.hpl.hp.com/stl/

    Google Scholar 

  25. B. Stroustrup, The Design and Evolution of C++, Addison-Wesley, 1994

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hanspeter Mössenböck

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Eisenecker, U.W. (1997). Generative programming (GP) with C++. In: Mössenböck, H. (eds) Modular Programming Languages. JMLC 1997. Lecture Notes in Computer Science, vol 1204. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62599-2_51

Download citation

  • DOI: https://doi.org/10.1007/3-540-62599-2_51

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-62599-5

  • Online ISBN: 978-3-540-68328-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics