Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
A compositional approach to superimposition
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Combination of inheritance hierarchies
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Bounded quantification is undecidable
Information and Computation
User-defined types and procedural data structures as complementary approaches to data abstraction
Theoretical aspects of object-oriented programming
A syntactic approach to type soundness
Information and Computation
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular object-oriented programming with units and mixins
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Featherweight Java: a minimal core calculus for Java and GJ
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ACM Transactions on Software Engineering and Methodology (TOSEM)
Types and programming languages
Types and programming languages
A Theory of Objects
Verifying cross-cutting features as open systems
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
Aspect-oriented programming with Jiazzi
Proceedings of the 2nd international conference on Aspect-oriented software development
Synthesizing Object-Oriented and Functional Design to Promote Re-Use
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Object-Oriented Programming Versus Abstract Data Types
Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages
Typed operational semantics for higher-order subtyping
Information and Computation
Jam---designing a Java extension with mixins
ACM Transactions on Programming Languages and Systems (TOPLAS)
The recursive record semantics of objects revisited
Journal of Functional Programming
IEEE Transactions on Software Engineering
Scalable extensibility via nested inheritance
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Variability management with feature-oriented programming and aspects
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Modular Verification of Open Features Using Three-Valued Model Checking
Automated Software Engineering
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A disciplined approach to aspect composition
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Traits: A mechanism for fine-grained reuse
ACM Transactions on Programming Languages and Systems (TOPLAS)
Feature oriented refactoring of legacy applications
Proceedings of the 28th international conference on Software engineering
Eliminating distinctions of class: using prototypes to model virtual classes
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Feature refactoring a multi-representation program into a product line
Proceedings of the 5th international conference on Generative programming and component engineering
From implementation to theory in product synthesis
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tribe: a simple virtual class calculus
Proceedings of the 6th international conference on Aspect-oriented software development
Safe composition of product lines
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Stateful traits and their formalization
Computer Languages, Systems and Structures
IEEE Transactions on Software Engineering
Feature featherweight java: a calculus for feature-oriented programming and stepwise refinement
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
FEATUREHOUSE: Language-independent, automated software composition
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Fitting the pieces together: a machine-checked model of safe composition
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Type-Checking Software Product Lines - A Formal Approach
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the impact of the optional feature problem: analysis and case studies
Proceedings of the 13th International Software Product Line Conference
ICWE'07 Proceedings of the 7th international conference on Web engineering
Superimposition: a language-independent approach to software composition
SC'08 Proceedings of the 7th international conference on Software composition
Type safety for feature-oriented product lines
Automated Software Engineering
An algebraic foundation for automatic feature-based program synthesis
Science of Computer Programming
A framework for modular linking in OO languages
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Type safety for feature-oriented product lines
Automated Software Engineering
An algebraic foundation for automatic feature-based program synthesis
Science of Computer Programming
Language-independent reference checking in software product lines
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
The road to feature modularity?
Proceedings of the 15th International Software Product Line Conference, Volume 2
Semistructured merge: rethinking merge in revision control systems
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Access control in feature-oriented programming
Science of Computer Programming
Row types for delta-oriented programming
Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems
Type checking annotation-based product lines
ACM Transactions on Software Engineering and Methodology (TOSEM)
Product-line verification with feature-oriented contracts
Proceedings of the 2013 International Symposium on Software Testing and Analysis
A comparison of product-based, feature-based, and family-based type checking
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Extending Type Inference to Variational Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
The goal of feature-oriented programming (FOP) is to modularize software systems in terms of features. A feature refines the content of a base program. Both base programs and features may contain various kinds of software artifacts, for example, source code in different languages, models, build scripts, and documentation. We and others have noticed that when composing features, different kinds of software artifacts can be refined in a uniform way, regardless of what they represent. We present gDeep, a core calculus for feature composition, which captures the language independence of FOP; it can be used to compose features containing many different kinds of artifact in a type-safe way. The calculus allows us to gain insight into the principles of FOP and to define general algorithms for feature composition and validation. We provide the formal syntax, operational semantics, and type system of gDeep and outline how languages like Java, Haskell, Bali, and XML can be plugged in.