Introduction

Instructor: E. Head

Why Study Programming Languages?


What is Computer Science?

What is a programming language?

Abelson and Sussman (Structure and Interpretation of Computer Programs 1996)
" We control complexity by building abstractions that hide details when appropriate. We control complexity by establishing conventional interfaces that enable us to construct systems by combining standard, well-understood pieces in a ``mix and match'' way. We control complexity by establishing new languages for describing a design, each of which emphasizes particular aspects of the design and deemphasizes others."

What are programs used for:

Why are there so many languages?


What will be cover ?


How do we judge a programming language?

  1. What is the extent of support for program correctness?
  2. What is the cost of program development and modification?
  3. What is the cost of using the program (execution time and space)?
Total cost is a combination of 2 and 3.  
There are trade-offs


Brief History of Programming Languages