Index


To search the index, use the search function of your browser.

A

abstract
~ class 11, 101
~ type 173
bounded ~ type
     see partially ~ type
partially ~ type 29, 173
abstraction
bounded type ~ 171
constructor ~ 288
operator ~ 288
type ~ 169, 243
application
constructor ~ 288
operator ~ 288
type ~ 169, 243
assumption (of rule)
see premise judgment
attribute (of object) 12

B

binary method 31, 208, 294
~ in O-1/2/3 157, 274, 308
bounded
~ abstract type
     see partially abstract type
~ existential quantifier 173
~ polymorphism 171
~ type abstraction 171
~ type parameterization 29
~ type variable 171
~ universal quantifier 171, 228, 243, 288
~ universal quantifier in O-2/3 274, 306

C

call-by-
~keyword 67
~name 65
~value 65
call-next-method 16
class 11
~ encoding 73, 100, 124, 144, 209, 214, 237, 295
~ in O-1/2/3 153, 274, 307
~ selection 155, 275, 307
~ type in O-1/2/3 153, 274, 306
abstract ~ 101
concrete ~ 102
leaf ~ 102
root ~ 155, 276, 307
class-based 1, 11, 155, 273, 305
cloning 36, 130
interpretation of ~ 260, 263, 271
closed term 61
closure 136, 147, 244
coalesced sum 186
complete metric space (of cupers) 188
complete uniform per 187
conclusion (of rule) 62, 79
concrete class 102
congruence rule 62
constructor 287
~ abstraction 288
~ application 288
context 62
contractiveness 185, 188, 194, 197
contravariance 21, 28, 94, 116, 178, 231
~ annotation 110, 223
~ of function types 21, 94, 112, 178
~ of universal quantifiers 171
covariance 20, 94, 116, 178, 231
~ annotation 110, 223
~ of existential quantifiers 174
~ of object types 109
~ of product types 20, 111, 179
~ of record types 106, 112, 179
~ requirement for Self types 202, 223
cuper (complete uniform per) 187
cyclic-record interpretation 262, 267

D

default parameters 67
delegation 13, 39, 42
dynamic ~ 46
static ~ 46
delegation-based 42
denotational semantics 185
derivation 63, 79
disjoint union type 122
dispatch
dynamic ~ 18
multiple ~ 53
single ~ 53
static ~ 18
distance (for cupers) 188
dynamic
~ dispatch 18
~ inheritance 46
~ typing 126
     see also typecase

E

elder 108
embedding 13, 39
embedding-based 40
embedding-retraction pair 186
environment (for judgments) 79
environment (semantic) 197
type ~ 197
equational theory 84
~ and self 90
~ for constructors 290
~ for existential quantifiers 174
~ for records 106
~ for recursive types 114
~ for Self quantifiers 181
~ for structural objects 217
~ for subtyping 98
~ for universal quantifiers 171
~ for -objects 203
first-order ~ 89
untyped ~ 62
error value 185
existential
~ quantifier 173
bounded ~ quantifier 173

F

F-bounded parameterization 33
field 12, 58
~ selection 52, 58, 130
~ update 52, 58, 130, 245
imperative ~s 130, 245
finiteness 187, 188
fixpoint
~ of a function on cupers 188
~ of an operator 295
~ operator 68, 92
formal system 79
fragment 79
equational ~ 84
free variable 61, 118, 176
fresh method 239
function 66
~ encoding 66, 91, 112, 115, 131, 178
function type 21, 83
~ encoding 91, 112, 115, 178
contravariance of ~s 21, 94, 112, 178
subtyping of ~s 21, 94

G

grammar notation 60
ground type 82

H

higher-order
~ bounded parameterization 33
~ subtyping 295
     see also subconstructor
host object 9, 38, 57

I

implementation
~ of abstract type 173
~ of inheritance 14
inclusion 287
inheritance 9, 38
~ in O-1/2/3 153, 273, 305
~ of binary methods 30, 297, 305
~-is-not-subtyping 30
dynamic ~ 46
encoding of ~ 74, 100, 209, 238, 295
encoding of multiple ~ 75, 101
explicit ~ 39
implementation of ~ 14
implicit ~ 39
mixin ~ 39
multiple ~ 14, 16, 44, 48
single ~ 16
single ~ in O-1/2/3 153, 273, 305
static ~ 46
inner 16
inspect 20
instance interface 102, 239
interface
~ of abstract type 173
instance ~ 102
subclass ~ 102, 239
interpretation
~ of objects 257
cyclic-record ~ 262, 267
recursive-record ~ 78, 260, 265
self-application ~ 76, 185, 259, 264, 271
split-method ~ 263, 268
state-application ~ 261, 266
invariance 21, 94, 116
~ annotation 110, 223
~ of object types 94
~ of recursive types 116
invariant
object shape ~ 215
recoup ~ 214
structural ~ 216
structural subtyping ~ 215
invocation 13, 18, 39, 42, 52, 58, 59, 129

J

judgment 62, 79
valid ~ 80

K

kind 287

L

leaf class 102
let 130, 245
lifting 186
location 136, 146, 242

M

match-bound
~ quantified type 306
~ type abstraction 306
~ type application 306
matching 33, 305
method 8, 57, 153, 274, 307
~ extraction 14, 93, 106
~ invocation 13, 18, 39, 42, 52, 58, 59, 129
~ lookup 13
~ override 9, 74
~ override in O-1/2/3 153, 273, 307
~ specialization 22, 28, 239, 273, 282
~ suite 13
~ type 146, 247
~ update 14, 37, 52, 58, 59, 129, 210, 224, 241
~ update in O-1/2/3 153, 275, 307
binary ~ 31, 208, 294
binary ~ in O-1/2/3 157, 274, 308
fresh ~ 239
imperative ~ update 129, 241
private ~ 102
protected ~ 102
public ~ 102
recoup ~ 212
virtual ~ 15
metric space
complete ~ (of cupers) 188
minimum types 95, 118
mode-switching 46, 49
multiple
~ dispatch 53
~ inheritance 14, 16, 44, 48
~ subtyping 27
encoding of ~ inheritance 75, 101

N

narrow 20
negative occurrence 177, 223
new 12
~ in O-1/2/3 155, 275, 307
see also class
nonexpansiveness 188, 194, 197

O

object 7, 57
~ extension 38, 60
~ in O-1/2/3 153, 273, 307
~ protocol 25
~ shape invariant 215
~ without class 35
~-orientation 7
donor ~ 38
host ~ 9, 38, 57
prototype ~ 47
structural ~ 216
trait ~ 47
-~ 201
object type 26, 35, 80, 189, 288
~ in O-1/2/3 153, 273, 305
~ with Self 201, 222
covariance of ~s 109
invariance of ~s 94
structural ~ 216
subtyping of ~s 94
-~ 201
object-based 1, 35, 155, 273, 305
occurrence
negative ~ 177, 223
positive ~ 177, 223
operational semantics 64, 86, 120, 127, 135, 224, 228, 242, 244, 289
operator
~ abstraction 288
~ application 288
fixpoint of an ~ 295
type ~ 287
override 9, 74
~ in O-1/2/3 153, 273, 307

P

parametric in Self 125, 211, 237, 274, 281
parent link 42
partial equivalence relation 187
partially abstract type 29, 173
per (partial equivalence relation) 187
polymorphism 169, 274
bounded ~ 171
subtype ~ 17
positive occurrence 177, 223
pre-method 23, 73, 100, 144, 209, 214, 237, 297
premise judgment 62, 79
primitive semantics 58
private method 102
product type 20
~ encoding 111
covariance of ~s 20, 111, 179
projection 186
protected method 102
protocol 32
prototype 36, 47
public method 102

Q

qua 16, 20
quantifier
bounded existential ~ 173
bounded universal ~ 171, 228, 243, 288
bounded universal ~ in O-2/3 274, 306
existential ~ 173
Self ~ 169, 179, 201, 269
universal ~ 170

R

rank 187, 188
record 76, 106, 259
~ encoding 112
record type 106, 179, 264
~ encoding 112, 179
covariance of ~s 106, 112, 179
subtyping of ~s 106
recoup 212
~ invariant 214
recursive type 113
invariance of ~s 116
recursive-record interpretation 78, 260, 265
reduction 61
weak ~ 64
reparent 47
representation type 173, 202
resend 16
result 64, 86, 120, 136, 242, 244, 289
~ typing 146, 248
root class 155, 276, 307
rule 79
~ naming 79
congruence ~ 62
structural ~ 172, 190, 216, 221, 243, 293

S

scoping 61, 118, 176
selection 52
selection (of field) 52, 58, 130
Self
~ quantifier 169, 179, 201, 269
~ type 24, 30, 125, 169, 201, 221, 242, 294
~ type in O-2/3 273, 305
~ type specialization 24
     see also method specialization
parametric in ~ 125, 211, 237, 274, 281
self 9, 57
self-application
~ interpretation 76, 185, 259, 264, 271
~ semantics 185
self-unfolding 202
semantics
denotational ~ 185
operational ~ 64, 86, 120, 127, 135, 224, 228, 242, 244, 289
self-application ~ 185
shallow copy
see cloning
single
~ dispatch 53
~ inheritance 16
~ inheritance in O-1/2/3 153, 273, 305
specialization
method ~ 22, 28, 239, 273, 282
Self type ~ 24
split-method interpretation 263, 268
stack 136, 242
~ type 247
~ typing 147, 248
state-application interpretation 261, 266
static dispatch 18
store 136, 242
~ typing 146, 248
structural
~ invariants 216
~ object 216
~ object type 216
~ rule 172, 190, 216, 221, 243, 293
~ subtyping 172, 190
~ subtyping invariant 215
~ update 172, 190, 222, 243, 293
stuck 87, 138, 152
subclass 15, 27, 30
~ in O-1/2/3 155, 273, 307
~ interface 102, 239
see also class, inheritance
subconstructor 287, 290
see also higher-order subtyping
subject reduction 86, 97, 121, 127, 146, 229, 247, 301
suboperator 295
subprotocol 32
substitution 59, 61, 113, 120
subsumption 18, 93
~ in O-1/2/3 154, 273, 305
subtype polymorphism 17
subtyping 18, 27, 30, 93
~ by type name 27
~ by type structure 27
~ for existential quantifiers 174
~ for function types 21, 94
~ for object types 94
~ for object types with primitive Self and variance 226
~ for object types with Self 204
~ for record types 106
~ for Self quantifiers 180
~ for universal quantifiers 171
~ for variance annotations 110
~ in O-1/2 153, 273
higher-order ~ 295
     see also subconstructor
multiple ~ 27
structural ~ 172, 190
sum, coalesced 186
super 15
~ encoding 74, 101
~ in O-1/2/3 156, 276, 307
syntax notation 60

T

trait 47, 144
~ encoding 73, 101
     see also class encoding
true type 18
type
~ abstraction 169, 243
~ application 169, 243
~ operator 287
~ parameter 28
~ variable 113, 171
abstract ~ 173
bounded ~ parameterization 29
bounded ~ variable 171
bounded abstract ~
     see partially abstract ~
disjoint union ~ 122
dynamic ~ 126
     see also typecase
environment (semantic) 197
function ~ 21, 83
method ~ 146, 247
minimum ~s 95, 118
object ~ 26, 35, 80, 189, 288
object ~ in O-1/2/3 153, 273, 305
object ~ with Self 201, 222
partially abstract ~ 29, 173
product ~ 20
record ~ 106, 179, 264
recursive ~ 113
representation ~ 173, 202
Self ~ 24, 30, 125, 169, 201, 221, 242, 294
Self ~ in O-2/3 273, 305
stack ~ 247
store ~ 146, 248
unique ~s 85
-object ~ 201
typecase 19, 23, 126
~ in O-1/2/3 156, 274, 311
typing environment 79

U

unfolding 202
union type, disjoint 122
unique types 85
unit 122
unit type 122
universal
~ quantifier 170
bounded ~ quantifier 171, 228, 243, 288
bounded ~ quantifier in O-2/3 274, 306
update
field ~ 52, 58, 130, 245
method ~ 14, 37, 52, 58, 59, 129, 210, 224, 241
method ~ in O-1/2/3 153, 275, 307

V

valid judgment 63, 80
variance
see co~, contra~, in~
variance annotations 110, 124, 222
~ in O-1/2/3 154, 274, 307
virtual method 15
 Luca Cardelli