10
More on Type Checking

More on Type Checking. Conversion and Coercion Int C; A = 1.5 + C;

Embed Size (px)

DESCRIPTION

Overloading An id binds to >1 semantic entity in same scope Pascal: f = f + 1 Fortran/PL1: + int or real addition Ada: A(i) Many languages: function decls with different parameter numbers/types Why? What are the challenges in implementing overloaded id’s?

Citation preview

Page 1: More on Type Checking. Conversion and Coercion Int C; A = 1.5 + C;

More on Type Checking

Page 2: More on Type Checking. Conversion and Coercion Int C; A = 1.5 + C;

Conversion and Coercion

Int C;A = 1.5 + C;

Page 3: More on Type Checking. Conversion and Coercion Int C; A = 1.5 + C;

Overloading• An id binds to >1 semantic entity in same scopePascal: f = f + 1Fortran/PL1: + int or real additionAda: A(i)Many languages: function decls with different parameter numbers/types

Why? What are the challenges in implementing overloaded id’s?

Page 4: More on Type Checking. Conversion and Coercion Int C; A = 1.5 + C;

Resolving overloaded symbols

• Determine unique meaning – use context• Operators (non-ids)• Ids

Page 5: More on Type Checking. Conversion and Coercion Int C; A = 1.5 + C;

Another example

Page 6: More on Type Checking. Conversion and Coercion Int C; A = 1.5 + C;

Overriding in Java

Page 7: More on Type Checking. Conversion and Coercion Int C; A = 1.5 + C;

Polymorphic Call Sites

Page 8: More on Type Checking. Conversion and Coercion Int C; A = 1.5 + C;

Polymorphic Functions:one function decl, multiple type args

Page 9: More on Type Checking. Conversion and Coercion Int C; A = 1.5 + C;

Polymorphism, Overloading, Overriding

Page 10: More on Type Checking. Conversion and Coercion Int C; A = 1.5 + C;

Type Checking Summary

• Exercise:

• With a partner, Outline the main issues you need to know to implement a type checker.