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].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
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
Bassett PG (1997) Framing software reuse: lessons from the real world. Prentice Hall Inc., Upper Saddle River
Beck K (2000) Extreme programming explained. Addison-Wesley, Reading
Beck K (2010) The inevitability of evolution. IEEE Softw 27(4):28–29
Beck K (1999) Embracing change with extreme programming. Computer 32(10):70–77
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
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
Boehm B (2010) The changing nature of software evolution. IEEE Softw 27(4):26–28
Chang KC (1997) Digital design and modeling with VHDL and synthesis. IEEE Computer Society Press, Los Alamitos
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
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
van Deursen A, Klint P, Visser J (2000) Domain-specific languages: an annotated bibliography. SIGPLAN Notices 35(6):25–35
van Deursen A, Klint P, Visser J (2002) Domain-specific languages. In: The encyclopedia of library and information science. Marcel Dekker, New York
Felici M (2003) Taxonomy of evolution and dependability. LFCS, School of Informatics, The University of Edinburgh
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
Fowler M (1999) Refactoring: improving the design of existing programs. Addison-Wesley, Reading
Garcia JE (2008) Aspect-oriented web development in PHP. Doctoral symposium on informatics engineering DSIE’08, Porto, Portugal
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
Grover PS, Kumar R, Kumar A (2008) Measuring changeability for generic aspect-oriented systems. SIGSOFT Softw Eng Notes 33(6):1–5
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
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
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
He D, Periyasamy K (2010) Exploring dynamic compilation facility in Java. In: Midwest instruction and computing symposium (MICS), 16–17 April 2010, Wisconsin
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
Special issue on domain-specific languages. In: Wile, DS, and Ramming, JC (eds) IEEE Trans Softw Eng 25(3), May/June 1999
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
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
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
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
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
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
Ousterhout JK (1998) Scripting: higher level programming for the 21st century. IEEE Comput 31(3):23–30
Rajlich V (2006) Changing the paradigm of software engineering. Commun ACM 49(8):67–70
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
Robbes R, Lanza M (2007) A change-based approach to software evolution. Electron Notes Theor Comput Sci 166:93–109
Sametinger J (1997) Software engineering with reusable components. Springer, Berlin
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
Štuikys V, Damaševičius R (2009) Measuring complexity of domain models represented by feature diagrams. Inf Technol Control 38(3):179–187
Sheiko D (2006) Aspect oriented software development in PHP. PHP Archit 5(4): 17–25
Sklar D (2006) Metaprogramming with PHP. In: PHP Conference 2006, New York
Schneider JG, Nierstrasz O (1999) Components, scripts and glue. In: Barroca L, Hall J, Hall P (eds) Software architectures — advances and applications. Springer, Heidelberg
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
Š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
Š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
Veldhuizen T (1995) Using C++ template metaprograms. C++ Rep 7(4):36–43
Vidacs L (2009) Software maintenance methods for preprocessed languages. Summary of the PhD dissertation, Institute of Informatics, University of Szeged
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
Winter VL (2004) Program transformation: what, how and why. In: Wah BW (ed) Wiley encyclopedia of computer science and engineering. Wiley, Hoboken
Ziberkas G (2001) Analysis of component-based program generation methods of an application domain. Doctorial dissertation, Technical Sciences, Informatics Engineering, Kaunas University of Technology
Author information
Authors and Affiliations
Corresponding author
Rights 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)