Programming Languages and Compilers

 

Lecture 1

 

This lecture introduces the course. We will look at Programming Language Paradigms and the history of Programming. The lecture will give an overview of what is involved in writing a compiler. The slides for this lecture can be found here and here.

 

Literature

 

Pratt and Zelkowitz, chapter 1.

Watt and Brown, chapter 1.

 

Some references on the web worth studying:

 

You can find an almost complete diagram of programming language history on this URL.

 

There is a short, but worthwhile, overview of Compilers, Interpreters and Virtual Machines written by Kashif Manzoor on this URL and a popular version by Alan Joch published in ComputerWorld on this URL.

 

Exercises

 

Exercises for lecture 1 will be done from 8.15 till 10.00 before Lecture 2 on Wednesday the 19th of February.

 

1. Make a list of all the computer languages you know.

(Remember to include command, scripting and text processing languages)

 

2. How well do you know the above languages?

Categorize them according to the following:

·        Daily use

·        Often

·        Written a few programs

·        Looked at it once or twice

 

3. Which language was your first programming language?

 

4. Categorize the above languages according to generations (1st to 5th (or 6th))

 

5. Categorize the above languages according to paradigm

(imperative, object oriented, declarative, special)

 

6. Do Pratt & Zelkowitz exercise 1 page 42 for Java and SML

 

7. Do Pratt & Zelkowitz exercise 6 page 43 but use Java instead of C

 

8. Do Pratt & Zelkowitz exercise 9 page 44.

 

9. Do Watt & Brown exercise 1.4 page 25.

 

10. Do Watt & Brown exercise 1.5 page 25.

 

11. Do Watt & Brown exercise 1.6 page 25.

(This exercise can be solved using pen and paper or by downloading and installing the Triangle compiler and TAM virtual machine from http://www.dcs.gla.ac.uk/~daw/books/PLPJ/

click on the Software link.)