1 / 20

Principles of Programming Languages

Principles of Programming Languages. Hongwei Xi University of Cincinnati Spring, 2001. Welcome!. 20-ECES-730: Principles of Programming Languages Introduction to fundamental principles in programming language design and implementation

mdella
Download Presentation

Principles of Programming Languages

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Principles of Programming Languages Hongwei Xi University of Cincinnati Spring, 2001 Introduction

  2. Welcome! • 20-ECES-730: Principles of Programming Languages • Introduction to fundamental principles in programming language design and implementation • Emphasis on the use of mathematical methods in programming language studies Introduction

  3. Course Overview • Type Systems • What is type safety? • What are the advantages of typed languages? • What are the disadvantages of typed languages? Introduction

  4. Course Overview • Operational Semantics • What is operational semantics? • Why do we need operational semantics? • How do we formally present operational semantics? • Natural semantics (big step) • Reduction semantics (small step) Introduction

  5. 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? • Polymorphism • How can polymorphism help code reuse? • How can polymorphism enforce data abstraction? Introduction

  6. Course Overview • Subtyping • 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? Introduction

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

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

  9. What this course is like? • There is no textbook for this course • Taking notes is a large part of the course • Both studying and experimentation are essential to gaining understanding of the material Introduction

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

  11. What this course is not! • This is not a course on your top 10 favorite programming languages • We care about fundamental principles, not fads! • This is not a compiler course • This course can be of great help for you to learn compiler construction • Nonetheless, you will be doing a lot of programming! Introduction

  12. People • Teaching Staff • Hongwei Xi, Assistant Prof • Swaroop Kavalanekar, Graduate Student Introduction

  13. Schedules • Lectures: TTh 3:30-4:45PM • Classroom: Swift 500 • Office Hours: • Thursday 4:30-6:30PM • Or by appointment (preferred) • Or stop by 826 Rhodes Introduction

  14. Programming Language • Standard ML (SML) • http://cm.bell-labs.com/cm/cs/what/smlnj • If you know nothing of SML, learn it now! Introduction

  15. Homework • Approximately 5 or 6 assignments • 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 Introduction

  16. Exams and Grades • Midterm (30%) • Date: Friday, 27 April, 2001 • Format: In-class or Take-home • Final (40%) • Date: Thursday, 7 June, 2001 • Time: 7:30-9:30AM • Place: Classroom • Homework (30%) • All exams are open-book • Participation can make difference on letter grade Introduction

  17. 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 teaching staff are always willing to help • Ask earlier, rather than later Introduction

  18. A Plea and A Warning • This is my second time to offer such a course • I’m likely to be overly ambitious • I’m certain to make (many) mistakes • But I’ll do my best to run the course smoothly • Please be patient and ask a lot of questions Introduction

  19. Course Information • Everything is on the web! • Course Homepagehttp://www.ececs.uc.edu/~hwxi/eces730.html • Notes, Slides, Handouts, Assignments, Solutions • Please visit the homepage frequently! Introduction

  20. Welcome on Board and Enjoy the Ride! Introduction

More Related