Combining language and database advances in an object-oriented development environment
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Types and persistence in database programming languages
ACM Computing Surveys (CSUR)
Computer Networks and ISDN Systems - Formal description technique (FDT) languages for protocols
The programming language jigsaw: mixins, modularity and multiple inheritance
The programming language jigsaw: mixins, modularity and multiple inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Thinking in C++
Implementing signatures for C++
ACM Transactions on Programming Languages and Systems (TOPLAS)
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Space and time-efficient memory layout for multiple inheritance
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Some high level language constructs for data of type relation
ACM Transactions on Database Systems (TODS)
Efficient subtyping tests with PQ-encoding
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java Virtual Machine Specification
Java Virtual Machine Specification
Fully Integrated Data Environments: Persistent Programming Languages, Object Stores, and Programmingenvironments
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Parametric polymorphism for XML
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Removing duplication from java.io: a case study using traits
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Scala experiment: can we provide better language support for component systems?
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Implementing signatures for C++
CTEC'94 Proceedings of the 6th conference on USENIX Sixth C++ Technical Conference - Volume 6
Is Structural Subtyping Useful? An Empirical Study
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
A mechanism for flexible dynamic trait replacement
Proceedings of the 11th International Workshop on Formal Techniques for Java-like Programs
Proceedings of the 4th workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems
Modularity for the changing meaning of changing
Proceedings of the tenth international conference on Aspect-oriented software development
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type systems directed programming language evolution: overview and research trends
Proceedings of the 50th Annual Southeast Regional Conference
Incompleteness-aware programming with RDF data
DDFP '13 Proceedings of the 2013 workshop on Data driven functional programming
On flexible dynamic trait replacement for Java-like languages
Science of Computer Programming
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Implementing federated object systems
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.00 |
This paper presents WHITEOAK: a JAVA extension that introduces structural type equivalence and subtyping into the language. We argue that structural subtyping addresses common software design problems, and promotes the development of loosely coupled modules without compromising type safety. We discuss language design issues, including subtyping in face of self-referencing structural types, compile-time operators for computing the new types from existing ones, and the semantics of constructors and non-abstract methods in structural types. We describe implementation techniques, including the compile-time and run-time challenges that we faced (in particular, preserving the identity of objects). Measurement indicate that the performance of our implementation of structural dispatching is comparable to that of the JVM's standard invocation mechanisms.