1 / 16

Principles of Programming Languages

Principles of Programming Languages. Hongwei Xi Comp. Sci. Dept. Boston University. Welcome!. Principles of Programming Languages Introduction to some fundamental principles in the design and implementation of programming languages

catron
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 Comp. Sci. Dept. Boston University

  2. Welcome! • Principles of Programming Languages • Introduction to some fundamental principles in the design and implementation of programming languages • Emphasis on the use of mathematical methods in programming language studies BU CAS CS520

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

  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) BU CAS CS520

  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? BU CAS CS520

  6. 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, you probably don’t understand it ” BU CAS CS520

  7. What is this course like? • It proceeds in a fast pace • You are expected to read the text that we may not have time to cover in class • You are expected to try programming examples that we may not have time to explain in class • You may need to take notes on the materials we cover that are not in the textbook, though I will minimize the need for note-taking by providing you with as many notes as possible BU CAS CS520

  8. What is this course like? • You are to have a rapid exposure to many fundamental concepts in programming languages • You are expected to gain a great deal more understanding of programming, which can be really helpful for you to pursue other subjects in computer science • Above all, I hope that you will find a great deal more fun in programming BU CAS CS520

  9. What is this course not like? • This is not a course about your top 10 favorite programming languages • We are interested in fundamental concepts • We are not so concerned with “fads” • This is not a compiler course, though it can certainly be of great help for you to take a compiler course later BU CAS CS520

  10. Programming Language • Standard ML (SML) • http://cm.bell-labs.com/cm/cs/what/smlnj • If you know little or nothing about SML, please learn it now! BU CAS CS520

  11. Homework • There are approximately 8 assignments • Individualwork only unless specified otherwise! • Clarity and elegance count • It is not enough to just “work” on test data BU CAS CS520

  12. Warnings • This is likely a challenging course for you as many new and unfamiliar concepts in programming languages are to be introduced rapidly • You may need to give some time for certain concepts to “sink in” • You may find that some programming assignments are difficult and demanding • Please ask for help if you need it: ask it sooner rather than later BU CAS CS520

  13. Pleas • This is the second time for me to teach such a course at Boston University • I am (still) likely to be a bit overly ambitious, and • I am (still) certain to make (quite a few) mistakes, but • I will do my best to make the course run as smoothly as possible • Please be patient and ask (a lot of) questions! BU CAS CS520

  14. Academic Integrity • Strict adherence to the university guidelines • All work you turn in must be solely your own unless specified otherwise • You are allowed to discuss problems with your classmates but you must write your own code and solutions • Please always remember that every student deserves a chance to achieve a fair grade BU CAS CS520

  15. Important Course Information • Lecture Times: 10-11AM MWF • Classroom: MCS B31 • Course Homepage:http://www.cs.bu.edu/~hwxi/academic/courses/CS520.html • Instructor: Hongwei Xi • Office Hours: Monday 11AM-12PM; Wednesday 1PM-3PM • Final Letter Grade Calculation: 40% (homework) + 20% (midterm) + 40% (final) A: 80% or above B: 70% or above C: 60% or above D: 50% or above BU CAS CS520

  16. The End Questions? BU CAS CS520

More Related