Type Systems for Programming Languages

Slides:



Advertisements
Similar presentations
MAT 3751 Analysis II Winter 2014
Advertisements

CS/CMPE 535 – Machine Learning Outline. CS Machine Learning (Wi ) - Asim LUMS2 Description A course on the fundamentals of machine.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
COMS W1004 Introduction to Computer Science May 28, 2008.
January 12, Compiler Design Hongwei Xi Comp. Sci. Dept. Boston University.
January 19, Compiler Design Hongwei Xi Comp. Sci. Dept. Boston University.
Overview Discrete Mathematics and Its Applications Baojian Hua
September 5, Concepts of Programming Languages Hongwei Xi Comp. Sci. Dept. Boston University.
September 7, Concepts of Programming Languages Hongwei Xi Comp. Sci. Dept. Boston University.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Introduction to Programming Using C++ Dr. Mohamed Khafagy.
COMP 151: Computer Programming II Spring Course Topics Review of Java and basics of software engineering (3 classes. Chapters 1 and 2) Recursion.
1 CSCE Programming Languages Introduction and Course Administration Dr. Hyunyoung Lee 410B HR Bright
Computer Network Fundamentals CNT4007C
7-Sep-15 Physics 1 (Garcia) SJSU Conceptual Physics (Physics 1) Prof. Alejandro Garcia Spring 2007.
EECE 310 Software Engineering Lecture 0: Course Orientation.
Computer Networks CEN 5501C Spring, 2008 Ye Xia (Pronounced as “Yeh Siah”)
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Course Introduction Software Engineering
Introduction to Databases Computer Science 557 September 2007 Instructor: Joe Bockhorst University of Wisconsin - Milwaukee.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
CSE 421 Algorithms Richard Anderson Winter 2009 Lecture 1.
B. Prabhakaran1 Multimedia Systems Reference Text “Multimedia Database Management Systems” by B. Prabhakaran, Kluwer Academic Publishers. – Kluwer bought.
Computer Networks CNT5106C
Course Overview CSE5319/7319 Software Architecture and Design Spring 2016 Dr. LiGuo Huang Dept. of Computer Science and Engineering Southern Methodist.
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
1 Welcome Alireza Humber College Lecture 1 Game 540 Alireza
EGR 115 Introduction to Computing for Engineers Course Overview and Introduction Monday 29 Aug EGR 115 Introduction to Computing for Engineers Slide 1.
Database Management Systems
How to Learn in This Course
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview
Formal Languages and Automata Theory
MATH/COMP 340: Numerical Analysis I
CPT S 317: Automata and Formal Languages
CSc 020: Programming Concepts and Methodology II
COMP 283 Discrete Structures
ECE 533 Digital Image Processing
Software Process ICS 225 Spring 2002
CIS5930 Software Defined Networking
Theory and Practice of Web Technology
Autonomous Cyber-Physical Systems: Course Introduction
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview
Introduction.
دانشكده برق دانشگاه علم و صنعت ايران
Course Overview - Database Systems
MA361 Differential Equations Syllabus
Welcome to COE212: Engineering Programming
EECE 310 Software Engineering
Introduction to CS II Data Structures
Introduction to Programming Using C++
Organization of Programming Languages
COMS 161 Introduction to Computing
Welcome to MAT 170 MWF.
Automata and Formal Languages
Principles of Programming Languages
Richard Anderson Autumn 2015 Lecture 1
COMS 261 Computer Science I
CPT S 317: Automata and Formal Languages
Principles of Programming Languages
C Programming Lecture 1 : Introduction
Welcome to CS 410 – Introduction to Software Engineering Spring 2019
C Programming Lecture 1 : Introduction
Principles of Imperative Computation
Course Overview CSE5319/7319 Software Architecture and Design
Richard Anderson Winter 2019 Lecture 2
Richard Anderson Autumn 2016 Lecture 1
Digital Signal Processing Spring, 2019
CSCI 1730: C++ and System Programming
Northern Michigan University Roxin Zhang Fall 2019
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Programming Languages Standard ML (preferred) http://cm.bell-labs.com/cm/cs/what/smlnj Objective Caml (preferred) http://caml.inria.fr 5 May 2019 Introduction

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

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

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

Course Information Everything is on the web! Course Homepage http://www.ececs.uc.edu/~hwxi/eces717.html Notes, Slides, Handouts, Assignments, Solutions Please visit the homepage frequently! 5 May 2019 Introduction