Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
A kernel language for abstract data types and modules.
Proc. of the international symposium on Semantics of data types
A semantics of multiple inheritance.
Proc. of the international symposium on Semantics of data types
CLU reference manual
GALILEO: a strongly-typed, interactive conceptual language
ACM Transactions on Database Systems (TODS)
Miranda: a non-strict functional language with polymorphic types
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
Type inference in a database programming language
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
ML with extended pattern matching and subtypes
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Database programming in Machiavelli—a polymorphic language with static type inference
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type checking records and variants in a natural extension of ML
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the Second European Symposium on Programming
A simple semantics for ML polymorphism
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Abstract types have existential types
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Using dependent types to express modular structure
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A study of semantics, types and languages for databases and object-oriented programming
A study of semantics, types and languages for databases and object-oriented programming
Rationale for the design of the Ada programming language
ACM SIGPLAN Notices - Rationale for the deisgn of the Ada programming language
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Type substitution for object-oriented programming
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
A record calculus based on symmetric concatenation
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Making pure object-oriented languages practical
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
ACM SIGPLAN Notices
Introduction to the literature on object-oriented design, programming, and languages
ACM SIGPLAN OOPS Messenger
Correctly typing objects through subtyping and type inference
SAC '92 Proceedings of the 1992 ACM/SIGAPP symposium on Applied computing: technological challenges of the 1990's
A compilation method for ML-style polymorphic record calculi
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A polymorphic calculus for views and object sharing (extended abstract)
PODS '94 Proceedings of the thirteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
A polymorphic record calculus and its compilation
ACM Transactions on Programming Languages and Systems (TOPLAS)
The ODMG object model: does it make sense?
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Static typing for dynamic messages
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-checking OQL queries in the ODMG type systems
ACM Transactions on Database Systems (TODS)
Attaching Second-Order Types to Methods in an Object-Oriented Language
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Converting java programs to use generic libraries
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Refactoring for Parameterizing Java Classes
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Typechecking UML static models
UML'99 Proceedings of the 2nd international conference on The unified modeling language: beyond the standard
Hi-index | 0.00 |
Central features of object-oriented programming are method inheritance and data abstraction attained through hierarchical organization of classes. Recent studies show that method inheritance can be nicely supported by ML style type inference when extended to labeled records. This is based on the fact that a function that selects a field ƒ of a record can be given a polymorphic type that enables it to be applied to any record which contains a field ƒ. Several type systems also provide data abstraction through abstract type declarations. However, these two features have not yet been properly integrated in a statically checked polymorphic type system.This paper proposes a static type system that achieves this integration in an ML-like polymorphic language by adding a class construct that allows the programmer to build a hierarchy of classes connected by multiple inheritance declarations. Moreover, classes can be parameterized by types allowing “generic” definitions. The type correctness of class declarations is statically checked by the type system. The type system also infers a principal scheme for any type correct program containing methods and objects defined in classes.