Abstract
In Chap. 2, we discussed the fundamental concepts of programming and meta-programming. Knowing the meaning of the concepts through their definitions is important but not enough. It is just the first step to acquire knowledge in the field. The aim of this chapter is to extend that knowledge and to reconsider some software design principles as a background of meta-programming techniques. Here, by principles, we mean the known software construction principles as they are to be applied to meta-programming domain. We refer to them as preliminary principles, when we discuss the way on how to start acquiring knowledge in the field. We refer to them as fundamental principles, when we consider the background of meta-programming based on information hiding. We refer to the implementation techniques or mechanism, when we consider the conceptual description of how some principles are realized in order to implement the meta-programming paradigm.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Czarnecki K, Eisenecker UW (2000) Separating the configuration aspect to support architecture evolution. In: Proceedings of 14th European conference on object-oriented programming (ECOOP’2000), international workshop on aspects and dimensions of concerns, Cannes, France, 11–12 June 2000
Coplien J, Hoffman D, Weiss D (1998) Commonality and variability in software engineering. IEEE Softw 15:37–45
Czarnecki K, Kim CHP, Kalleberg KT (2006) Feature models are views on ontologies. In: Proceedings of the 10th international software product line conference, Baltimore, 2006, pp 41–51
Dijkstra EW (1972) Notes on structured programming. In: Dahl OJ, Dijkstra EW, Hoare CAR (eds) Structured programming. Academic, London
Greer D (2008) The art of separation of concerns. http://ctrl-shift-b.blogspot.com/2008/01/art-of-separation-of-concerns.html
Hubaux A, Heymans P, Unphon H (2008) Separating variability concerns in a product line re-engineering project. In: EA-AOSD’08, Brussels, Belgium, 31 Mar 2008
Kang K, Cohen S, Hess J, Novak W, Peterson S (1990) Feature-oriented domain analysis (FODA) fessibility study. In: TR CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, Nov 1990
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. Springer, Berlin, pp 220–242
Ossher H, Tarr P (2001) Multi-dimensional separation of concerns and the hyperspace approach. In: Aksit M (ed) Software architectures and component technology: the state of the art in software development. Kluwer Academic Publishers, Boston
Parnas DL (1972) On the criteria to be used in decomposing a system into modules. Commun ACM 15(12):1053–1058
Štuikys V, Damaševičius R (2000) Scripting language open PROMOL and its processor. Informatica 11(1):71–86
Štuikys V, Damaševičius R, Brauklytė I, Limanauskienė V (2008) Exploration of learning object ontologies using feature diagrams.In: Proceedings of world conference on educational multimedia, hypermedia & telecommunications (ED-MEDIA 08), June 30–July 4 2008, Vienna, Austria, pp 2144–2154
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). A Background of Meta-Programming Techniques. 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_3
Download citation
DOI: https://doi.org/10.1007/978-1-4471-4126-6_3
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)