CSE130 LECTURE NOTES


WELCOME

This is CSE 130.  Please see today's introductory handout.  Points to note: Class will start at 4:40pm sharp and end at 6:00pm sharp.
 
 

OVERVIEW OF THE COURSE

A programming language is a notation for writing software.  Good programming languages have many properties: A common theme is that the design of the PL should help the programmer avoid mistakes.  To err is human!

All the properties above are design objectives.  Sometimes the objectives can conflict, for example portability and performance.  But often multiple objectives point in the same direction.

Why study programming languages?

Because PLs are interesting!
 
 

HISTORY OF PROGRAMMING LANGUAGES

Most of the ideas of modern PLs appear in four or five classic languages: I said "four or five classic languages" because Cobol has not had much impact on later languages, although it remains important.

Fortran's most important innovation was the very idea of a high-level PL, i.e. that a compiler could generate machine code from a program written in a machine-independent notation.  But CSE 130 is not about compilers.
 
 

CSE 130 TOPICS

We will study modern languages that are in widespread use: We won't study C++ directly, because it is not as well-designed as the languages above.  It is an interesting sociological question why C++ is so widely used today.  Possible answers include that C++ is widely available, close to traditional CPU architecture, and familiar to most programmers since it is based on C.

 CSE 130 will be organized by concept, not by language.  All the languages mentioned above have many more similarities than differences.  We will concentrate on the core concepts that all widely-used modern languages are based on.
 
 



Based on lecture notes by Charles Elkan, 1999.