Presentation is loading. Please wait.

Presentation is loading. Please wait.

Type Systems for Programming Languages

Similar presentations


Presentation on theme: "Type Systems for Programming Languages"— Presentation transcript:

1 Type Systems for Programming Languages
Hongwei Xi University of Cincinnati Spring, 2000 5 May 2019 Introduction

2 Welcome! 20-ECES-717: Type Systems for Programming Languages
Introduction to type disciplines in programming language design and implementation Emphasis on the use of mathematical methods in programming language studies 5 May 2019 Introduction

3 Course Overview Type Systems What is type safety?
What are the advantages of typed languages? What are the disadvantages of typed languages? 5 May 2019 Introduction

4 Course Overview Simply Typed Lambda-Calculus
Call-by-name and Call-by-value Confluence Property (Church-Rosser) Weak Normalization Theorem Strong Normalization Theorem 5 May 2019 Introduction

5 Course Overview Parametric Polymorphism
How can polymorphism facilitate code reuse? How can polymorphism enforce data abstraction? 5 May 2019 Introduction

6 Course Overview Subtyping Objects, Classes and Inheritance
When is one type a subtype of another? How can subtyping help code reuse? Objects, Classes and Inheritance How can we build flexible and extensible software? How is subtyping related to inheritance? 5 May 2019 Introduction

7 Course Overview Effects References Exceptions
Problematic interaction between polymorphism and effects Value restriction 5 May 2019 Introduction

8 Course Overview Continuation callcc (call with current continuation)
throw CPS compilation 5 May 2019 Introduction

9 Course Overview Type Inference
Do types have to be obtrusive to programming? Is it a good practice to omit writing types as much as possible? What are the desirable properties in a type inference algorithm? 5 May 2019 Introduction

10 What is this course like?
Stressing both mathematical reasoning and implementation skill Prove theorems Build systems Emphasizing mathematical rigor and clarity “If you can’t explain it, I won’t trust it ” 5 May 2019 Introduction

11 What is this course like?
You will have to work hard in order to keep up! Many ideas may sound unfamiliar to you. They are often formal and take time to “sink in”. Assignments often require both mathematical reasoning and implementation skill. 5 May 2019 Introduction

12 What this course is like?
There is a draft textbook for this course on-line as well as some course notes Taking notes is a large part of the course as we may often digress from the text book Both studying and experimentation are essential to gaining understanding of the material 5 May 2019 Introduction

13 What is this course like?
Most of all, it’s a lot fun! Elegant interplay between theory and practice Rapid exposure to many fundamental ideas Enormous potential for pursuing further studies in language design and implementation 5 May 2019 Introduction

14 Schedules Lectures: MWF 12-12:50PM BH839 Office Hours: Thursday 4-6PM
Or by appointment (preferred) Or stop by 811 D Rhodes 5 May 2019 Introduction

15 Programming Languages
Standard ML (preferred) Objective Caml (preferred) 5 May 2019 Introduction

16 Homework Approximately 5 assignments Clarity and elegance count
About one every two weeks Individual work only unless specified otherwise! Clarity and elegance count It is not enough to just “work” on test data 5 May 2019 Introduction

17 Exams and Grades Midterm Final Homework (40%) All exams are open-book
Monday, May 1 In-class or Take Home (20%) Final Tuesday, June 6 In-class or Take Home (40%) Homework (40%) All exams are open-book Participation can make difference on letter grade 5 May 2019 Introduction

18 Academic Integrity Strict adherence to the university guidelines
All work must be solely your own! If you have difficulty keeping up, ask for help! The instructor is always willing to help Ask earlier, rather than later 5 May 2019 Introduction

19 Course Information Everything is on the web!
Course Homepage Notes, Slides, Handouts, Assignments, Solutions Please visit the homepage frequently! 5 May 2019 Introduction


Download ppt "Type Systems for Programming Languages"

Similar presentations


Ads by Google