|
ABSTRACT
Feature-oriented programming (FOP) is a paradigm that incorporates programming language technology, program generation techniques, and stepwise refinement. In their GPCE'07 paper, Thaker et al. suggest the development of a type system for FOP to guarantee safe feature composition, i.e, to guarantee the absence of type errors during feature composition. We present such a type system along with a calculus for a simple feature-oriented, Java-like language, called Feature Featherweight Java (FFJ). Furthermore, we explore four extensions of FFJ and how they affect type soundness.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
F. Anfurrutia, O. Díaz, and S. Trujillo. On Refining XML Artifacts. In Proc. Int'l. Conf. Web Engineering (ICWE), volume 4607 of LNCS, pages 473--478. Springer-Verlag, 2007.
|
| |
3
|
S. Apel and D. Hutchins. An Overview of the gDeep Calculus. Technical Report MIP-0712, Department of Informatics and Mathematics, University of Passau, 2007.
|
 |
4
|
|
| |
5
|
S. Apel, C. Kästner, T. Leich, and G. Saake. Aspect Refinement - Unifying AOP and Stepwise Refinement. Journal of Object Technology - Special Issue: TOOLS EUROPE'07, pages 13--33, 2007.
|
| |
6
|
S. Apel, C. Kästner, and C. Lengauer. An Overview of Feature Featherweight Java. Technical Report MIP-0802, Department of Informatics and Mathematics, University of Passau, 2008.
|
| |
7
|
S. Apel, T. Leich, M. Rosenmüller, and G. Saake. FeatureC: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In Proc. Int'l. Conf. Generative Programming and Component Engineering (GPCE), volume 3676 of LNCS, pages 125--140. Springer-Verlag, 2005.
|
| |
8
|
|
| |
9
|
S. Apel and C. Lengauer. Superimposition: A Language-Independent Approach to Software Composition. In Proc. Int'l. Symp. Software Composition (SC), volume 4954 of LNCS, pages 20--35. Springer-Verlag, 2008.
|
| |
10
|
|
 |
11
|
Alexandre Bergel , Stéphane Ducasse , Oscar Nierstrasz, Classbox/J: controlling the scope of change in Java, Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
| |
12
|
|
 |
13
|
Dave Clarke , Sophia Drossopoulou , James Noble , Tobias Wrigstad, Tribe: a simple virtual class calculus, Proceedings of the 6th international conference on Aspect-oriented software development, March 12-16, 2007, Vancouver, British Columbia, Canada
[doi> 10.1145/1218563.1218578]
|
 |
14
|
Curtis Clifton , Todd Millstein , Gary T. Leavens , Craig Chambers, MultiJava: Design rationale, compiler implementation, and applications, ACM Transactions on Programming Languages and Systems (TOPLAS), v.28 n.3, p.517-575, May 2006
[doi> 10.1145/1133651.1133655]
|
| |
15
|
|
 |
16
|
|
 |
17
|
Erik Ernst , Klaus Ostermann , William R. Cook, A virtual class calculus, Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.270-282, January 11-13, 2006, Charleston, South Carolina, USA
|
 |
18
|
Matthew Flatt , Shriram Krishnamurthi , Matthias Felleisen, Classes and mixins, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.171-183, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268961]
|
 |
19
|
|
| |
20
|
R. Hirschfeld, P. Costanza, and O. Nierstrasz. Context-Oriented Programming. J. Object Technology (JOT), 7(3):125--151, 2008.
|
 |
21
|
|
 |
22
|
|
 |
23
|
|
| |
24
|
A. Igarashi, C. Saito, and M. Viroli. Lightweight Family Polymorphism. In Proc. Asian Symp. Programming Languages and Systems (APLAS), volume 3780 of LNCS, pages 161--177. Springer-Verlag, 2005.
|
| |
25
|
T. Kamina and T. Tamai. McJava - A Design and Implementation of Java with Mixin-Types. In Proc. Asian Symp. Programming Languages and Systems (APLAS), volume 3302 of LNCS, pages 398--414. Springer-Verlag, 2004.
|
| |
26
|
K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, 1990.
|
| |
27
|
C. Kästner and S. Apel. Type-checking Software Product Lines - A Formal Approach. In Proc. Int'l. Conf. Automated Software Engineering (ASE). IEEE CS Press, 2008.
|
 |
28
|
|
| |
29
|
C. Kästner, S. Apel, S. Trujillo, M. Kuhlemann, and D. Batory. Language-Independent Safe Decomposition of Legacy Applications into Features. Technical Report 02/2008, School of Computer Science, University of Magdeburg, 2008.
|
 |
30
|
|
 |
31
|
|
| |
32
|
|
 |
33
|
Sean McDirmid , Matthew Flatt , Wilson C. Hsieh, Jiazzi: new-age components for old-fasioned Java, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.211-222, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
34
|
S. McDirmid, W. Hsieh, and M. Flatt. A Framework for Modular Linking in OO Languages. In Proc. Joint Modular Lang. Conf. (JMLC), volume 4228 of LNCS, pages 116--135. Springer-Verlag, 2006.
|
 |
35
|
|
 |
36
|
Nathaniel Nystrom , Stephen Chong , Andrew C. Myers, Scalable extensibility via nested inheritance, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
| |
37
|
M. Odersky, V. Cremet, C. Röckl, and M. Zenger. A Nominal Theory of Objects with Dependent Types. In Proc. Europ. Conf. Object-Oriented Programming (ECOOP), volume 2743 of LNCS, pages 201--224. Springer-Verlag, 2003.
|
 |
38
|
Martin Odersky , Matthias Zenger, Scalable component abstractions, Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
| |
39
|
K. Ostermann. Nominal and Structural Subtyping in Component-Based Programming. J. Object Technology (JOT), 7(1):121--145, 2008.
|
| |
40
|
C. Prehofer. Feature-Oriented Programming: A Fresh Look at Objects. In Proc. Europ. Conf. Object-Oriented Programming (ECOOP), volume 1241 of LNCS, pages 419--443. Springer-Verlag, 1997.
|
| |
41
|
|
 |
42
|
|
 |
43
|
|
| |
44
|
M. Torgersen. The Expression Problem Revisited. In Proc. Europ. Conf. Object-Oriented Programming (ECOOP), volume 3086 of LNCS, pages 123--143. Springer-Verlag, 2004.
|
 |
45
|
|
| |
46
|
|
|