Conference Proceedings on Object-Oriented Programming Systems, Languages, and Applications 1991
DOI: 10.1145/117954.117965
|View full text |Cite
|
Sign up to set email alerts
|

Object-oriented type inference

Abstract: We present a new approach to inferring types in untyped object-oriented programs with inheritance, assignments, and late binding. It guarantees that all messages are understood, annotates the program with type information, allows polymorphic methods, and can be used as the basis of an optimizing compiler.Types are finite sets of classes and subtyping is set inclusion. Using a trace graph, our algorithm constructs a set of conditional type constraints and computes the least solution by least fixed-point derivat… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
98
0

Year Published

1995
1995
2022
2022

Publication Types

Select...
7
2

Relationship

1
8

Authors

Journals

citations
Cited by 222 publications
(98 citation statements)
references
References 18 publications
0
98
0
Order By: Relevance
“…1b is also well-formed. Admittedly, the typing rule expressed in (2) is somewhat simplistic in that it does not consider inheritance or subtyping; however, we do not delve into the technicalities necessary for this here because they complicate matters unduly (and have been addressed in great detail elsewhere; see, e.g., [11,24]). …”
Section: Two Simple Well-formedness Rulesmentioning
confidence: 99%
See 1 more Smart Citation
“…1b is also well-formed. Admittedly, the typing rule expressed in (2) is somewhat simplistic in that it does not consider inheritance or subtyping; however, we do not delve into the technicalities necessary for this here because they complicate matters unduly (and have been addressed in great detail elsewhere; see, e.g., [11,24]). …”
Section: Two Simple Well-formedness Rulesmentioning
confidence: 99%
“…3.4, the premise must contain only constraints whose properties are fixed for all model elements quantified over (so that they can be evaluated at rule application time). Thus, the first step in transforming a well-formedness rule such as (8) into a constraint rule is rewriting it to the form ∀l, m : l ∈ lifelines ∧ m ∈ l.messages → m.operation ∈ l.classifier.operations ∧ m.name = m.operation.name (11) The remainder of the transformation depends on which properties are fixed and which are non-fixed for a given refactoring, as shown in Table 1 for three sample refactorings. For RENAME, name is the only non-fixed property so that (11) can be transformed to l ∈ lifelines m ∈ l.messages m.name = m.operation.name (12) This is so because l.messages never changes so that the constraint m ∈ l.messages can be evaluated at rule application time, after m and l have been bound to concrete model elements (recall that both m and l are implicitly universally quantified), and because neither of m.operation, l.classifier, and l.classifier.operations can change their values, so that m.operation ∈ l.classifier.operations must remain satisfied and can be dropped (as stated in Sect.…”
Section: Separation Into Queries and Constraintsmentioning
confidence: 99%
“…In a parametric type system, we would expect to be able to recover the exact vehicle-type. This is because, when the Location is constructed with a value of the exact type Car, this type is propagated into the vehicle-type parameter τ of Location's polymorphic variable myVeh, which we imagine might have the type: [15]. They were using a type substitution mechanism, which has only slightly less expressive power than the full parametric mechanism used in our approach 2 .…”
Section: Implicit Class-type Substitutionsmentioning
confidence: 99%
“…Ole Agesen's recent PhD thesis [2] contains a complete survey of related work. Reviewed systems range from purely theoretical ones [33] to systems in regular use by a large community [22], via partially implemented systems [29,30] and systems implemented on small languages [14,25].…”
Section: Related Workmentioning
confidence: 99%