Presentation is loading. Please wait.

Presentation is loading. Please wait.

Organization of Programming Languages

Similar presentations


Presentation on theme: "Organization of Programming Languages"— Presentation transcript:

1 Organization of Programming Languages
Hongwei Xi University of Cincinnati Winter, 2001 10 December 2018 Introduction

2 Welcome! 20-ECES-403: Organization of Programming Languages
Introduction to fundamental principles in programming language design and implementation Emphasis on the use of mathematical methods in programming language studies 10 December 2018 Introduction

3 Software Crisis Faulty and fragile software becomes more and more common Security breaches happen more and more frequently Maintenance cost skyrockets Programming productivity stagnates 10 December 2018 Introduction

4 Programming Languages
Ideally, a programming language should be simple and general permit extensive error checking facilitate proofs of program properties Possess a correct and efficient implementation … … 10 December 2018 Introduction

5 Programming Languages
Invariably, there are conflicts among these expectations Language design must resolve such conflicts with careful attention to the needs of the user 10 December 2018 Introduction

6 Programming Paradigms
Imperative programming FORTRAN, Algol 60, C, Pascal Functional programming LISP, SML, Haskell Object-oriented programming Smalltalk, C++, Java Logic programming Prolog … … 10 December 2018 Introduction

7 Course Overview Syntactic Structure Expression notations
Prefix, Postfix, Infix, Mixed Abstract Syntax Trees Lexical Analysis Context-free Grammars Backus-Naur Form (BNF) Ambiguity 10 December 2018 Introduction

8 Course Overview Structured programming Syntax-directed control-flow
Programming with invariants Proofs rules for partial correctness 10 December 2018 Introduction

9 Course Overview Procedure activations What is a procedure?
Parameter-passing methods call-by-value, call-by-name, call-by-reference, call-by-value-result Scope rules for names Activation records 10 December 2018 Introduction

10 Course Overview Object-oriented programming What is an object?
Object-oriented thinking Inheritance code reuse 10 December 2018 Introduction

11 Course Overview Type Systems What is type safety?
What are the advantages of typed languages? What are the disadvantages of typed languages? 10 December 2018 Introduction

12 Course Overview Type Inference Polymorphism
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? 10 December 2018 Introduction

13 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? 10 December 2018 Introduction

14 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. 10 December 2018 Introduction

15 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 10 December 2018 Introduction

16 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! 10 December 2018 Introduction

17 Schedules Lectures: Office Hours: 3-6PM Wednesdays
Time: MWF 10-10:50AM Place: 821B Rvschl Office Hours: 3-6PM Wednesdays Or by appointment Or stop by 826 Rhodes Hall 10 December 2018 Introduction

18 Programming Languages
Standard ML (preferred) C, C++, Java If you use none of these languages, you need permission to register 10 December 2018 Introduction

19 Homework Approximately one assignment each week
Individual work only unless specified otherwise! Clarity and elegance count It is not enough to just “work” on test data 10 December 2018 Introduction

20 Exams and Grades Midterm Final Homework (25%) All exams are open-book
Friday, Feb 9, 2001 In-class (25%) Final 8-10AM, Monday, Mar 12 In-class (50%) Homework (25%) All exams are open-book Participation can make a difference on letter grade 10 December 2018 Introduction

21 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 10 December 2018 Introduction

22 A Plea and A Warning This is my first 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 10 December 2018 Introduction

23 Course Information Everything is on the web!
Course Homepage Notes, Slides, Handouts, Assignments, Solutions Please visit the homepage frequently! 10 December 2018 Introduction


Download ppt "Organization of Programming Languages"

Similar presentations


Ads by Google