Abstract
Feature oriented programming (FOP) is the study of feature mod ularity and its use in program synthesis. AHEAD is a theory of FOP that is based on a fundamental concept of generative programming that functions map programs. This enables the design of programs to be expressed compo sitionally as algebraic expressions, which are suited for automated analysis, manipulation, and program synthesis. This paper is a tutorial on FOP and AHEAD. We review AHEAD’s theory and the tool set that implements it.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
AHEAD Tool Suite, http://www.cs.utexas.edu/users/schwartz/ATS.html (ATS documentation)
Balzer, R.: A Fifteen-Year Perspective on Automatic Programming. IEEE Trans. Software Engineering, 1257–1267 (November 1985); Mid-80’s state-of-art-report on automatic programming
Batory, D., O’Malley, S.: The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM Trans. Software Engineering and Methodology, 355–398 (October 1992); The GenVoca Model.
Batory, D.: The Road to Utopia: A Future for Generative Programming. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 1–18. Springer, Heidelberg (2004); Rela¬tionship of query optimization to AHEAD
Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling Stepwise Refinement. IEEE Trans. Software Engineering, 355–371 (2004); The AHEAD model
Batory, D., Liu, J., Sarvela, J.N.: Refinements and Multi-Dimensional Separation of Concerns. In: ACM SIGSOFT 2003, pp. 48–57 (2003); A sophisticated example of Origami
Batory, D., Johnson, C., MacDonald, R., von Heeder, D.: Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study. ACM Transactions on Software Engineering and Methodology, 191–214 (April 2002); A product-line that needs both extensions and embedded DSLs
Batory, D., Chen, G., Robertson, E., Wang, T.: Design Wizards and Visual Programming Environments for GenVoca Generators. IEEE Transactions on Software Engineering, 441–452 (May 2000); Explains relationship between automatic programming and GenVoca equation optimization
Batory, D., Geraci, B.J.: Composition Validation and Subjectivity in GenVoca Generators. IEEE Transactions on Software Engineering, 67–82 (1997); Early form of design rule checking
Batory, D.: Feature Models, Grammars, and Propositional Formulas. In: Software Product-Line Conference (SPLC) 2005, pp. 7–20 (2005); Generalizes results in
de Jong, M., Visser, J.: Grammars as Feature Diagrams. In: Workshop on Generative Programming (GP 2002), April 15, Austin Texas, USA (2002); Relates feature diagrams to grammars
Jung, E.J.: Feature Oriented Programming and Product Line Architectures for Open Architecture Robot Software, M.Sc. Thesis, Dept. Mechanical Engineering, University of Texas at Austin (2004); Application of FOP ideas to robotics, Origami
Kang, K., Cohen, S., Hess, J., Nowak, W., Peterson, S.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report, CMU/SEI-90TR-21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA (November 1990); First significant paper on features and product-lines
Liu, J., Batory, D.: Automatic Remodularization and Optimized Synthesis of Product-Families. In: Generative Programming and Component Engineering (GPCE), pp. 379–395 (October 2004); Shows how sets of equations can be optimized
Lopez-Herrejon, R.E., Batory, D.: A Standard Problem for Evaluating Product-Line Methodologies. In: Bosch, J. (ed.) GCSE 2001. LNCS, vol. 2186, pp. 10–24. Springer, Heidelberg (2001); A simple product-line defined using the GenVoca model
Kohlbecker, E., Friedman, D.P., Felleisen, M., Duba, B.: Hygienic Macro Expansion. In: SIGPLAN 1986 ACM Conference on Lisp and Functional Programming, pp. 151–161 (1986); Classic paper on the inadvertent capture problem
Product-Line Architecture Research Group, http://www.cs.utexas.edu/users/schwartz/
Lopez-Herrejon, R., Batory, D., Cook, W.: Evaluating Support for Features in Advanced Modularization Technologies. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 169–194. Springer, Heidelberg (2005); Using the expression problem to evaluate different modularization technologies
Lopez-Herrejon, R., Batory, D., Lengauer, C.: A Disciplined Approach to Aspect Composition. In: Program Evaluation and Program Manipulation (PEPM), pp. 68–77 (2005); Formalizes the AspectJ composition model
Selinger, P.P., Astrahan, M.M., Chamberlin, D.D., Lorie, R.A., Price, T.G.: Access Path Selection in a Relational Database System. In: ACM SIGMOD 1979, pp. 23–34 (1979); Classic paper on relational query optimizers
Teitelbaum, T., Reps, T.: The Cornell Program Synthesizer: a Syntax-Directed Programming Environment. CACM 24(9), 563–573 (1981); Classic paper on syntax-directed editors
Torgersen, M.: The Expression Problem Revisited. Four New Solutions Using Generics. In: ECOOP 2004, pp. 123–146 (2004); A recent paper on the Expression problem
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Batory, D. (2006). A Tutorial on Feature Oriented Programming and the AHEAD Tool Suite. In: Lämmel, R., Saraiva, J., Visser, J. (eds) Generative and Transformational Techniques in Software Engineering. GTTSE 2005. Lecture Notes in Computer Science, vol 4143. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11877028_1
Download citation
DOI: https://doi.org/10.1007/11877028_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-45778-7
Online ISBN: 978-3-540-46235-4
eBook Packages: Computer ScienceComputer Science (R0)