Skip to main content

A Framework: How Can Heterogeneous Meta-Programs Be Further Generalized?

  • Chapter
  • First Online:
Meta-Programming and Model-Driven Meta-Program Development

Part of the book series: Advanced Information and Knowledge Processing ((AI&KP,volume 5))

  • 1089 Accesses

Abstract

As it was learned before, a meta-program is a specific computer program that can be seen as a generalized entity because it generates other programs or program parts [Ort07]. We share the view to meta-programming as a program generalization/generation technique with Veldhuizen [Vel06] and many other researchers. On the other hand, meta-programming is not a homogeneous field as it was outlined in Chap. 2. In a wider context, currently meta-programming is understood and dealt with from slightly different perspectives (e.g. as frame-based programming [CJ99], aspect-oriented programming [KLM+97], generative programming [CE01], generic programming [RJ05a], feature-oriented programming [TBD07]). What is common for the approaches is that they seek for the same aim: to achieve higher productivity and quality of the process to develop a program. The approaches, however, differ in concepts, formalisms and applied techniques. That is why various generalization forms in the field are possible. Our approach to meta-programming, which we considered basically in Chaps. 3, 4, and 5, is based on the extension of the preprocessing concept using two languages at once in the structural programming manner.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Benestad AC, Anda B, Arisholm E (2009) Understanding software maintenance and evolution by analyzing individual changes: a literature review. J Softw Maint Evol Res Pract 21:349–378

    Article  Google Scholar 

  2. Beck K (2000) Extreme programming explained: Embrace Change, Addison Wesley Longman, Reading, Mass

    Google Scholar 

  3. Beck K (2010) The inevitability of evolution. IEEE Software; Los Alamitos, CA: IEEE Computer Society, 27(4):28–29

    Google Scholar 

  4. Biggerstaff T (1994) The library scaling problem and the limits of concrete component reuse. In: Proceedings of the third international conference on software reuse: advances in software reusability, Rio de Janeiro, Brazil, 1–4 Nov 1994, pp 102–109

    Google Scholar 

  5. Buckley J, Mens T, Zenger M, Rashid A, Kniesel G (2003) Towards a taxonomy of software change. J Softw Maint Evol Res Pract 17(5):309–332

    Article  Google Scholar 

  6. Boehm B (2006) A view of 20th and 21st century software engineering. ICSE’06, 20–28 May, Shanghai, China

    Google Scholar 

  7. Boehm B (2010) The changing nature of software evolution. IEEE Softw 27(4):26–28

    Google Scholar 

  8. Czarnecki K, Eisenecker U (2001) Generative programming: methods, tools and applications. Addison-Wesley, Boston

    Google Scholar 

  9. Chapin N, Hale J, Khan K, Ramil J, Than W-G (2001) Types of software evolution and software maintenance. J Softw Mainten Evol 13:3–30

    Article  MATH  Google Scholar 

  10. Cheong YC, Jarzabek S (1999) Frame-based method for customizing generic software architectures. In: Proceedings of the fifth symposium on software reusability, SSR 1999, 21–23 May, Los Angeles, CA, USA, pp 103–112

    Google Scholar 

  11. Damaševičius R, Genutis M, Štuikys V (2004) Design of distributed generic embedded components. Inf Technol Control 32(3):61–65

    Google Scholar 

  12. Damaševičius R, Štuikys V (2008) Taxonomy of the fundamental concepts of metaprogramming. Inf Technol Control 37(2):124–132

    Google Scholar 

  13. Fischer G, Giaccardi E (2005) Meta-design: a framework for the future of end-user development. In: Lieberman H, Paternņ F, Wulf V (eds) End user development – empowering people to flexibly employ advanced information and communication technology. Kluwer Academic, Dordrecht

    Google Scholar 

  14. Fischer G, Giaccardi E, Ye Y, Sutcliffe AG, Mehandjiev N (2004) Meta-design: a manifesto for end-user development. CACM 47(9):33–37

    Google Scholar 

  15. Fricke E, Schulz AP (2005) Design for Changeability (DfC): principles to enable changes in systems throughout their entire lifecycle. Syst Eng 8(4):342–359, Wiley Periodicals Inc

    Article  Google Scholar 

  16. Godfrey MW, German DM (2008) The past, present, and future of software evolution, http://plg.uwaterloo.ca/~migod/papers/2008/icsm08-fosm.pdf

  17. Kiczales G, Lamping J, Mendhekar A, Maeda C, Videira Lopes C, Loingtier J-M, Irwin J (1997) Aspect-oriented programming. In: Proceedings of the European Conference on Object-Oriented Programming (ECOOP’1997). LNCS, vol 1241. Berlin: Springer-Verlag, pp 220–242

    Google Scholar 

  18. Ortiz A (2007) An introduction to metaprogramming. Linux J 158:6

    Google Scholar 

  19. Rajlich V (2006) Changing the paradigm of software engineering. Commun ACM 49(8):67–70

    Article  Google Scholar 

  20. Reis GD, Järvi J (2005) What is generic programming? In: Proceedings of workshop on Library-Centric Software Design LCSD’05, workshop. San Diego (California), USA; October 2005. Note: As technical report 06–12 of Rensselaer Polytechnic Institute, Computer Science Department, pp 1–10

    Google Scholar 

  21. Štuikys V, Damaševičius R (2002) Taxonomy of the program transformation processes. Inf Technol Control 1(22):39–52

    Google Scholar 

  22. Štuikys V, Damaševičius R (2008) Development of generative learning objects using feature diagrams and generative techniques. Informat Edu 7(2):277–288

    Google Scholar 

  23. Štuikys V, Montvilas M, Damaševičius R (2009) Development of WEB component generators using one-stage metaprogramming. Inf Technol Control 38(2):108–118

    Google Scholar 

  24. Trujillo S, Batory DS, Díaz O (2007) Feature-oriented model driven development: a case study for portlets. In: Proceedings of 29th International Conference on Software Engineering (ICSE 2007), Minneapolis, MN, USA, 20–26 May 2007, pp 44–53

    Google Scholar 

  25. Veldhuizen TL (2006) Tradeoffs in metaprogramming. In: Proceedings of ACM SIGPLAN workshop on partial evaluation and semantics-based program manipulation, Charleston, SC, USA, pp 150–159

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Vytautas Štuikys .

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag London

About this chapter

Cite this chapter

Štuikys, V., Damaševičius, R. (2013). A Framework: How Can Heterogeneous Meta-Programs Be Further Generalized?. In: Meta-Programming and Model-Driven Meta-Program Development. Advanced Information and Knowledge Processing, vol 5. Springer, London. https://doi.org/10.1007/978-1-4471-4126-6_13

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-4126-6_13

  • Published:

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-4471-4125-9

  • Online ISBN: 978-1-4471-4126-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics