Download presentation

Presentation is loading. Please wait.

Published byAniya Hopp Modified over 2 years ago

1
CSE-321 Programming Languages Predicative Polymorphic -Calculus POSTECH May 23, 2007 박성우

2
2 System F

3
3 Identity Function

4
4 Pairing Function

5
5 Typing Rules

6
6 Reduction Rules for System F

7
7 Outline System F V Type reconstruction Predicative polymorphic -calculus Let-polymorphism Value restriction

8
8 Which is the most readable? fn x => fn y => x + y fn x : int => fn y : int => x + y fn x : int => fn y : int => (x + y) : int

9
9 Which is the most readable? fn f => fn g => g o f fn f => fn g => (fn x => g (f x)) fn f : 'a -> 'b => fn g : 'b -> 'c => (fn x : 'a -> g (f x)) fn f : 'a -> 'b => fn g : 'b -> 'c => ((fn x : 'a -> (g (f x)) : 'c) : 'a -> 'c)

10
Arguably, type annotations do not always improve code readability.

11
11 Type Reconstruction Source code fn x => fn y => x + y After type reconstruction fn x : int => fn y : int => x + y : int -> int -> int

12
12 Type Reconstruction in System F type reconstruction type erasure typable

13
13 Erasure Function

14
14 Type Reconstruction and Erasure type reconstruction type erasure typable

15
15 Bad News Not every untyped expression is typable! –e.g. because every expression in System F eventually reduces to a value. Really bad news: –Type reconstruction is undecidable! –There is no algorithm for type reconstruction in System F!

16
16 Outline System F V Type reconstruction V Predicative polymorphic -calculus Let-polymorphism Value restriction

17
17 Predicative Polymorphic -Calculus Sublanguage of System F –decidable type reconstruction –supports polymorphism Helps us to understand let-polymorphism.

18
18 Types in System F

19
19 Types in P.P. -Calculus

20
20 Predicative Polymorphic -Calculus A variable is assigned a monotype. A type application uses a monotype.

21
21 Typing Rules

22
Polymorphic types in predicative polymorphic -calculus are USELESS!

23
23 Let's apply id to two different types bool and int.

Similar presentations

OK

1 SML fn x => e e 1 e 2 0, 1, 2,..., +, -,... true, false, if e then e else e patterns datatypes exceptions structures functors fun f x = e variables.

1 SML fn x => e e 1 e 2 0, 1, 2,..., +, -,... true, false, if e then e else e patterns datatypes exceptions structures functors fun f x = e variables.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Electronic paper display ppt on ipad Ppt on solar thermal power plant Ppt on effective communication for preceptors Ppt on earth movements and major landforms in canada Cdc ppt on zika Ppt on forward rate agreement notation Ppt on index of industrial production us Ppt on zener diode current Ppt on our country india class 6 Ppt on harvest festivals of india