Loading in 5 sec....

CSE-321 Programming Languages Simply Typed -CalculusPowerPoint Presentation

CSE-321 Programming Languages Simply Typed -Calculus

- By
**onawa** - Follow User

- 120 Views
- Uploaded on

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

**An Image/Link below is provided (as is) to download presentation**

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

### What is the type of ?

-Calculus

- Abstract syntax
- Operational semantics (call-by-value)

Simulating Base Types

- Booleans
- Natural numbers
- Fixed point combinator

Motivation

- 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

- E.g.
- A subset of Standard ML

Outline

- Introduction V
- The simply typed -calculus
- Abstract syntax
- Operational semantics
- Type system

- Type safety

What if there is no base type?

No interesting expression!

Outline

- Introduction V
- The simply typed -calculus
- Abstract syntax V
- Operational semantics
- Type system

- Type safety

Simply Untyped -Calculus

Capture-Avoiding Substitutions

- Completely analogous

Free Variables

- Completely analogous

Outline

- Introduction V
- The simply typed -calculus
- Abstract syntax V
- Operational semantics V
- Type system

- Type safety

Answer:

How to find 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!

Type System

- Typing context
- Typing judgment

Outline

- Introduction V
- The simply typed -calculus V
- Abstract syntax V
- Operational semantics V
- Type system V

- Type safety

Unsafe Operations in C

- Adding two pointers
- 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
- ...

Assignment 3+

- 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.

- Example:
- Then count the number of extra hours that you spend before completing Assignment 3.

Type Safety

- 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."

Type Preservation + Progress

- 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 Safety

- Type preservation
- Progress

Proof of Type Safety

- Use the rule induction.
- In the next lecture!

Download Presentation

Connecting to Server..