A semantics of multiple inheritance.
Proc. of the international symposium on Semantics of data types
Principal type scheme and unification for intersection type discipline
Theoretical Computer Science - International Joint Conference on Theory and Practice of Software Development, P
Objects as closures: abstract semantics of object-oriented languages
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Inheritance in smalltalk-80: a denotational definition
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A denotational semantics of inheritance and its correctness
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Handbook of theoretical computer science (vol. B)
Type systems for programming languages
Handbook of theoretical computer science (vol. B)
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Complete restrictions of the intersection type discipline
Theoretical Computer Science
Two semantic models of object-oriented languages
Theoretical aspects of object-oriented programming
A denotational semantics of inheritance and its correctness
Information and Computation
Sound polymorphic type inference for objects
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Intersection type assignment systems
Selected papers of the thirteenth conference on Foundations of software technology and theoretical computer science
Efficient inference of object types
Information and Computation
Object-oriented programming: a unified foundation
Object-oriented programming: a unified foundation
Normalization results for typeable rewrite systems
Information and Computation
Information and Computation
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
An efficient class and object encoding
OOPSLA '00 Proceedings of the 15th 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)
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
A Theory of Objects
The Java Language Specification
The Java Language Specification
The Definition of Standard ML
Normalization, approximation, and semantics for combinator systems
Theoretical Computer Science
A lambda calculus of objects and method specialization
Nordic Journal of Computing
Dynamic Denotational Semantics of Java
Formal Syntax and Semantics of Java
Lambda-My-Calculus: An Algorithmic Interpretation of Classical Natural Deduction
LPAR '92 Proceedings of the International Conference on Logic Programming and Automated Reasoning
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Detecting and Removing Dead-Code using Rank 2 Intersection
TYPES '96 Selected papers from the International Workshop on Types for Proofs and Programs
Constructive Foundations for Featherweight Java
PTCS '01 Proceedings of the International Seminar on Proof Theory in Computer Science
A Delegation-based Object Calculus with Subtying
FCT '95 Proceedings of the 10th International Symposium on Fundamentals of Computation Theory
Strong Normalization of Typeable Rewrite Systems
HOA '93 Selected Papers from the First International Workshop on Higher-Order Algebra, Logic, and Term Rewriting
Full Abstraction for First-Order Objects with Recursive Types and Subtyping
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
LICS '00 Proceedings of the 15th Annual IEEE Symposium on Logic in Computer Science
The essence of computation
Modular control-flow analysis with rank 2 intersection types
Mathematical Structures in Computer Science
Logical Equivalence for Subtyping Object and Recursive Types
Theory of Computing Systems
The heart of intersection type assignment: Normalisation proofs revisited
Theoretical Computer Science
Computation with classical sequents
Mathematical Structures in Computer Science
The ruby programming language
Semantic predicate types and approximation for class-based object oriented programming
Proceedings of the 11th International Workshop on Formal Techniques for Java-like Programs
Strict intersection types for the Lambda Calculus
ACM Computing Surveys (CSUR)
Approximation semantics and expressive predicate assignment for object-oriented programming
TLCA'11 Proceedings of the 10th international conference on Typed lambda calculi and applications
Lightweight family polymorphism
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Hi-index | 5.23 |
@?We consider semantics for the class-based object-oriented calculus Featherweight Java (without casts) based upon approximation. We also define an intersection type assignment system for this calculus and show that it satisfies subject reduction and expansion, i.e. types are preserved under reduction and its converse. We establish a link between type assignment and the approximation semantics by showing an approximation result, which leads to a sufficient condition for the characterisation of head-normalisation and termination. @?We show the expressivity of both our calculus and our type system by defining an encoding of Combinatory Logic into our calculus and showing that this encoding preserves typeability. We also show that our system characterises the normalising and strongly normalising terms for this encoding. We thus demonstrate that the great analytic capabilities of intersection types can be applied to the context of class-based object orientation.