1 / 29

# CSE-321 Programming Languages Simply Typed ? -Calculus - PowerPoint PPT Presentation

CSE-321 Programming Languages Simply Typed  -Calculus. 박성우. POSTECH March 28, 2007.  -Calculus. Abstract syntax Operational semantics (call-by-value). Simulating Base Types. Booleans Natural numbers Fixed point combinator. Motivation. The  -calculus is expressive.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'CSE-321 Programming Languages Simply Typed ? -Calculus' - onawa

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### CSE-321 Programming LanguagesSimply Typed -Calculus

박성우

POSTECH

March 28, 2007

-Calculus

• Abstract syntax

• Operational semantics (call-by-value)

• Booleans

• Natural numbers

• Fixed point combinator

• The -calculus is expressive.

• booleans, integers, lists, recursive functions, ...

• But it is highly inefficient to program in the -calculus.

• Why not just use instead of ?

• So we introduce a type system!

Simply Typed -Calculus

• An extension of the untyped-calculus with types

• Assumes a fixed set of base types

• E.g.

• base type

• primitive constructs

• A subset of Standard ML

• Introduction V

• The simply typed -calculus

• Abstract syntax

• Operational semantics

• Type system

• Type safety

No interesting expression!

• Introduction V

• The simply typed -calculus

• Abstract syntax V

• Operational semantics

• Type system

• Type safety

Simply Untyped -Calculus

• Completely analogous

• Completely analogous

• Introduction V

• The simply typed -calculus

• Abstract syntax V

• Operational semantics V

• Type system

• Type safety

### What is the type of ?

• Assume that the type of x is A.

• okay

• Find the type of x.

• A

• Build a function type

• A ! A

Need to make assumptions on types of variables!

• Typing context

• Typing judgment

• Introduction V

• The simply typed -calculus V

• Abstract syntax V

• Operational semantics V

• Type system V

• Type safety

• Subtracting an integer from a string

• which is okay, but likely to be unintended

• Null-pointer dereferencing

• Argh... segmentation fault!

• Using an integer as a destination address in a function call

• ...

• Count the number of hours that you spend before getting your Matrix program to typecheck.

• Example:

• 0am: You start.

• 10am: Your program compiles with no type errors.

• Then count the number of extra hours that you spend before completing Assignment 3.

• Slogan"well-typed expressions never go wrong"

• Two theorems

• Type preservation:"A well-typed expression reduces to another expression of the same type."

• Progress:"A well-typed expression does not get stuck: either it is a value or reduces to another expression."

• A well-typed expression e:

• If it is a value, we are finished.

• If it is not,

• It reduces to another e' [Progress]

• e' has the same type as e. [Type preservation]

• Type preservation

• Progress

• Use the rule induction.

• In the next lecture!