교과과정(대학원) - POSTECH · 비선형편미분방정식 고등수치해석학 편미분방정식의 수치적방법 대수적그래프론 위상적그래프론 특강Ⅰ,Ⅱ,Ⅲ
CSE-321 Programming Languages Subtyping POSTECH May 14, 2007 박성우.
-
Upload
tobias-beasley -
Category
Documents
-
view
214 -
download
2
Transcript of CSE-321 Programming Languages Subtyping POSTECH May 14, 2007 박성우.
CSE-321 Programming Languages
Subtyping
POSTECH
May 14, 2007
박성우
2
Key Features of Object-Oriented Languages
• Multiple representation– different methods of the same name – dynamic dispatch
• Encapsulation– Only an object's own methods can see private data.
• Inheritance– classes, subclasses, ...
• Subtyping– interface, interface extension
3
Outline• Overview V• Principle of subtyping• Subtyping relations• Coercion semantics
4
Principle of Subtyping
5
Examples
6
Basic Rules
• Reflexivity and transitivity
• Rule of subsumption
7
Subset Semantics for Subtyping
• Example
– 32-bit word for nat– 32-bit word for int– 64-bit word for float
8
Outline• Overview V• Principle of subtyping V• Subtyping relations• Coercion semantics
9
Setup
10
Subtyping for Product Types
11
Subtyping for Sum Types
12
Subtyping for Function Types
13
Subtyping for Reference Types
You are all so gullible!
15
Wrong Subtyping Rules!
16
17
18
Subtyping for Function Types
• Covariant in return types B and B'
• Contravariant in argument types A and A'
19
Dereferencing ref A
20
Assigning to ref A
21
Subtyping for Reference Types
• A · B corresponds to dereferencing.• B · A corresponds to assigning a new value.• Nonvariant (neither covariant nor contravariant)
22
Subtyping for Array Types• Array types = extension of reference types
• Subtyping for array types in Java
– runtime overhead of dynamic tag-checks.
23
Outline• Overview V• Principle of subtyping V• Subtyping relations V• Coercion semantics
24
Coercion Semantics for Subtyping
• Example
– 32-bit word for int– 64-bit word for float
25
Coercion Subtyping Judgment
26
• All coercion functions for A · B) exhibit the same behavior.
Coherence