Skip to main content

Open PROMOL: A Meta-Language for Heterogeneous Meta-Programming

  • 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))

  • 1094 Accesses

Abstract

Though other authors (see a review in [DKV00]) have suggested many interesting ideas, models and solutions, nevertheless, it was difficult to find a language at the time that would suit best for expressing explicitly the composition, modification and generalization simultaneously. As a consequence, we have designed the language Open PROMOL aiming at the development of generic specifications, which specify the wide range modifications of target language (also domain language) programs to support the design of generic components and generators. Our approach has some similarities and differences in the model as well as in the implemented concepts to Bassett’s frame commands [Bas97].

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. Bassett PG (1997) Framing software reuse: lessons from the real world. Prentice Hall Inc., Upper Saddle River

    Google Scholar 

  3. Beck K (2000) Extreme programming explained. Addison-Wesley, Reading

    Google Scholar 

  4. Beck K (2010) The inevitability of evolution. IEEE Softw 27(4):28–29

    Google Scholar 

  5. Beck K (1999) Embracing change with extreme programming. Computer 32(10):70–77

    Article  Google Scholar 

  6. Bergmann S, Kniesel G (2006) GAP: generic aspects for PHP. In: Proceedings of the EWAS 2006 – third European workshop on aspects in software. 31 August 2006, Enschede

    Google Scholar 

  7. 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 

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

    Article  Google Scholar 

  9. Chang KC (1997) Digital design and modeling with VHDL and synthesis. IEEE Computer Society Press, Los Alamitos

    MATH  Google Scholar 

  10. Coste P, Hessel F, Ph Le Marrec, Sugar Z, Romdhani M, Suescun R, Zergainoh N, Jerraya AA (1999) Multilanguage design of heterogeneous systems. In: Proceedings of the 7th international conference on hardware/software codesign (CODES’99), 3–5 May, Rome. ACM Press, New York

    Google Scholar 

  11. Deridder D (2002) Facilitating software maintenance and reuse activities with a concept-oriented approach. Programming Technology Laboratory, Vrije Universiteit Brussel, Brussels, Belgium. http://prog.vub.ac.be. 15 May 2002

  12. van Deursen A, Klint P, Visser J (2000) Domain-specific languages: an annotated bibliography. SIGPLAN Notices 35(6):25–35

    Google Scholar 

  13. van Deursen A, Klint P, Visser J (2002) Domain-specific languages. In: The encyclopedia of library and information science. Marcel Dekker, New York

    Google Scholar 

  14. Felici M (2003) Taxonomy of evolution and dependability. LFCS, School of Informatics, The University of Edinburgh

    Google Scholar 

  15. Fluri B (2007) Assessing changeability by investigating the propagation of change types. In: Proceedings of the 29th international conference on software engineering (ICSE’07 Companion), Minneapolis

    Google Scholar 

  16. Fowler M (1999) Refactoring: improving the design of existing programs. Addison-Wesley, Reading

    Google Scholar 

  17. Garcia JE (2008) Aspect-oriented web development in PHP. Doctoral symposium on informatics engineering DSIE’08, Porto, Portugal

    Google Scholar 

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

  19. Grover PS, Kumar R, Kumar A (2008) Measuring changeability for generic aspect-oriented systems. SIGSOFT Softw Eng Notes 33(6):1–5

    Article  Google Scholar 

  20. Gabrysiak G, Marr S, Menge F (2005) Meta programming and reflection in PHP. Hasso-Plattner Institute, at the University of Potsdam, Germany. http://instantsvc.sourceforge.net/docs/metaprogramming-and-reflection-with-php-paper.pdf

  21. Gupta A, Slyngstad OPN, Conradi R, Mohagheghi P, Rønneberg H, Landre E (2006) An empirical study of software changes in industry – origin, priority level and relation to component size. In: ICSEA'06, 29 October–3 November 2006, Tahiti, French Polynesia. IEEE CS Press, pp 12–19

    Google Scholar 

  22. Givargis T, Vahid F (2000) Parameterized system design. In: Proceedings of the eighth international workshop on hardware/software codesign CODES’ 2000. ACM Press, New York

    Google Scholar 

  23. He D, Periyasamy K (2010) Exploring dynamic compilation facility in Java. In: Midwest instruction and computing symposium (MICS), 16–17 April 2010, Wisconsin

    Google Scholar 

  24. Hudak P (1998) Modular domain specific languages and tools. In: Devanbu P, Poulin JS (eds) Proceedings of the 5th international conference on software reuse; 2–5 June 1998, Victoria. IEEE Computer Society Press, Los Alamitos

    Google Scholar 

  25. Special issue on domain-specific languages. In: Wile, DS, and Ramming, JC (eds) IEEE Trans Softw Eng 25(3), May/June 1999

    Google Scholar 

  26. Jerraya AA, Ernst R (1999) Multi-language system design. In: Proceedings of the design, automation and test in Europe (DATE 1999); 9–12 March, Münich. ACM Press, New York

    Google Scholar 

  27. Jerraya AA, Romdhani M, Ph Le Marrec, Hessel F, Coste P, Valderrama C, Marchioro GF, Daveau JM, Zergainoh NE (1999) Multilanguage specification for system design and codesign. In: Jerraya AA, Mermet J (eds) System-level synthesis. Kluwer Academic Publishers, Boston

    Chapter  Google Scholar 

  28. Kosar T, Lopez PEM, Barrientos PA, Mernik M (2008) A preliminary study on various implementation approaches of domain-specific language. Inf Softw Technol 50(5):390–405

    Article  Google Scholar 

  29. Kosar T, Oliveira N, Mernik M, Pereira MJV, Črepinšek M, da Cruz D, Henriques PR (2010) Comparing general-purpose and domain-specific languages: an empirical study. ComSIS 7(2), Special Issue: 247–264

    Google Scholar 

  30. Mens T, Demeyer S, Janssens D (2002) Formalising behaviour preserving program transformations. In: Corradini A, Ehrig H, Kreowski H-J, Rozenberg G (eds) Graph transformation, proceedings of the first international conference, ICGT 2002, Barcelona, Spain, 7–12 October. LNCS, vol 2505. Springer, Heidelberg, pp 286–301

    Google Scholar 

  31. Oliveira N, Pereira MJV, Henriques PR, da Cruz D (2009) Domain-specific languages: a theoretical survey. http://inforum.org.pt/INForum2009/docs/full/paper_86.pdf

  32. Ousterhout JK (1998) Scripting: higher level programming for the 21st century. IEEE Comput 31(3):23–30

    Article  Google Scholar 

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

    Article  Google Scholar 

  34. Ramil JF, Lehman MM (2000) Cost estimation and evolvability monitoring for software evolution processes. In: WESS 2000 workshop on empirical studies of software maintenance, San Jose, 14 Oct 2000

    Google Scholar 

  35. Robbes R, Lanza M (2007) A change-based approach to software evolution. Electron Notes Theor Comput Sci 166:93–109

    Article  Google Scholar 

  36. Sametinger J (1997) Software engineering with reusable components. Springer, Berlin

    MATH  Google Scholar 

  37. Schneider JG (1999) Components, scripts, and glue: a conceptual framework for software composition. PhD thesis, University of Bern, Institute of Computer Science and Applied Mathematics

    Google Scholar 

  38. Štuikys V, Damaševičius R (2009) Measuring complexity of domain models represented by feature diagrams. Inf Technol Control 38(3):179–187

    Google Scholar 

  39. Sheiko D (2006) Aspect oriented software development in PHP. PHP Archit 5(4): 17–25

    Google Scholar 

  40. Sklar D (2006) Metaprogramming with PHP. In: PHP Conference 2006, New York

    Google Scholar 

  41. Schneider JG, Nierstrasz O (1999) Components, scripts and glue. In: Barroca L, Hall J, Hall P (eds) Software architectures — advances and applications. Springer, Heidelberg

    Google Scholar 

  42. Shah NA, Skjellum A (2005) A metaprogramming approach to generating optimized code for algorithms in linear algebra. In: Proceedings of the ACMSE’05, 18–20 March 2005, Atlanta

    Google Scholar 

  43. Štuikys V, Damaševičius R, Ziberkas G (2002) Open PROMOL: an experimental language for domain program modification. In: Mignotte A, Vilar E, Horobin L (eds) System on chip design languages. Kluwer Academic Publishers, Boston, pp 235–246

    Google Scholar 

  44. Štuikys V, Ziberkas G, Damaševičius R, Majauskas G (2002) Two approaches for developing generic components in VHDL. Microelectron J 33:271–277, Oxford: Elsevier Science Ltd

    Article  Google Scholar 

  45. Veldhuizen T (1995) Using C++ template metaprograms. C++ Rep 7(4):36–43

    Google Scholar 

  46. Vidacs L (2009) Software maintenance methods for preprocessed languages. Summary of the PhD dissertation, Institute of Informatics, University of Szeged

    Google Scholar 

  47. Visser E (2007) WebDSL: a case study in domain-specific language engineering. In: Lammel R, Saraiva J, Visser J (eds) Generative and transformational techniques in software engineering (GTTSE 2007), Lecture notes in computer science. Springer, Berlin

    Google Scholar 

  48. Winter VL (2004) Program transformation: what, how and why. In: Wah BW (ed) Wiley encyclopedia of computer science and engineering. Wiley, Hoboken

    Google Scholar 

  49. Ziberkas G (2001) Analysis of component-based program generation methods of an application domain. Doctorial dissertation, Technical Sciences, Informatics Engineering, Kaunas University of Technology

    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). Open PROMOL: A Meta-Language for Heterogeneous Meta-Programming. 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_6

Download citation

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

  • 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