Organizing programs without classes
Lisp and Symbolic Computation
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
Ownership types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Safejava: a unified type system for safe programming
Safejava: a unified type system for safe programming
Object ownership and containment
Object ownership and containment
Traits: A mechanism for fine-grained reuse
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generic ownership for generic Java
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
FeatherTrait: A modest extension of Featherweight Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Universe Types for Topology and Encapsulation
Formal Methods for Components and Objects
A representation-independent behavioral semantics for object-oriented components
FMOODS'07 Proceedings of the 9th IFIP WG 6.1 international conference on Formal methods for open object-based distributed systems
Implementing software product lines using traits
Proceedings of the 2010 ACM Symposium on Applied Computing
Infering ownership types for encapsulated object-oriented program components
Program analysis and compilation, theory and practice
Modular specification of encapsulated object-oriented components
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Chai: traits for Java-like languages
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
On ownership and accessibility
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Combining traits with boxes and ownership types in a Java-like setting
Science of Computer Programming
A meta-circular language for active libraries
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Hi-index | 0.00 |
The box model is a component model for the object-oriented paradigm, that defines components (the boxes) with clear encapsulation boundaries. Having well-defined boundaries is crucial in component-based software development, because it enables to argue about the interference and interaction between a component and its context. In general, boxes contain several objects and inner boxes, of which some are local to the box and cannot be accessed from other boxes and some can be accessible by other boxes. A trait is a set of methods divorced from any class hierarchy. Traits can be composed together to form classes or other traits. We present a calculus for boxes and traits. Traits are units of fine-grained reuse, whereas boxes can be seen as units of coarse-grained reuse. The calculus is equipped with an ownership type system and allows us to combine coarse- and fine-grained reuse of code by maintaining encapsulation of components.