Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
A syntactic approach to type soundness
Information and Computation
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
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
The Java Language Specification
The Java Language Specification
Conquering aspects with Caesar
Proceedings of the 2nd international conference on Aspect-oriented software development
A Statically Safe Alternative to Virtual Types
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Implementing Layered Designs with Mixin Layers
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Scalable extensibility via nested inheritance
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Scalable component abstractions
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Variant parametric types: A flexible subtyping scheme for generics
ACM Transactions on Programming Languages and Systems (TOPLAS)
J&: nested intersection for scalable software composition
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Tribe: a simple virtual class calculus
Proceedings of the 6th international conference on Aspect-oriented software development
Variant path types for scalable extensibility
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
A core calculus for scala type checking
MFCS'06 Proceedings of the 31st international conference on Mathematical Foundations of Computer Science
Variant path types for scalable extensibility
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Lightweight family polymorphism*
Journal of Functional Programming
Matching ThisType to subtyping
Proceedings of the 2009 ACM symposium on Applied Computing
Sharing classes between families
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Separating ownership topology and encapsulation with generic universe types
ACM Transactions on Programming Languages and Systems (TOPLAS)
DeepFJig: modular composition of nested classes
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Featherweight Jigsaw - Replacing inheritance by composition in Java-like languages
Information and Computation
Java wildcards meet definition-site variance
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
A meta-circular language for active libraries
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Challenges in the design of the package template mechanism
Transactions on Aspect-Oriented Software Development IX
Science of Computer Programming
Hi-index | 0.00 |
Much recent work in the design of object-oriented programming languages has been focusing on identifying suitable features to support so-called scalable extensibility, where the usual extension mechanism by inheritance works in different scales of software components-that is, classes, groups of classes, groups of groups and so on. Its typing issues has usually been addressed by means of dependent type systems, where nested types are seen as properties of objects. In this work, we seek instead for a different solution, which can bemore easily applied to Java-like languages, in which nested types are considered properties of classe. We introduce the mechanism of variant path types, which provide a flexible means to express intra-group relationship (among classes) that has to be preserved through extension. In particular, improving and extending existing works on groups and exact types, we feature the new notions of exact and inexact qualifications, providing rich abstractions to express various kinds of set of objects, with a flexible subtyping scheme. We formalize a safe type system for variant path types on top of Feather weight Java. Our development results in a complete solution for scalable extensibility, similarly to previous attempts based on dependent type systems.