Read and make notes on chapters 3 (on LISP) & 5 (on ALGOL) of Mitchell (2003). In your notes, pay particular attention to motivation and new innovations of the language.
An author writes
Briefly discuss the merits and/or shortcomings of the above three statements, giving examples and/or counterexamples from procedural, applicative, logical, and/or object-oriented programming languages.
For the programming languages FORTRAN, LISP, Java, C, C++ and ML briefly discuss and evaluate their typing disciplines.
Consider the following two program fragments:
defvar x 1 ) ( defun g(z) (+ x z) ) ( defun f(y) ( + (g 1) (let ( + y 3) ) ) ( ( x ( (+ y x) g( ) ) ) )2 ) ( f
val x = 1 ; fun g(z) = x + z ; fun f(y) 1) + = g(let val x = y + 3 in g(y+x)end ; 2) ; f(
What are their respective output values when run in their corresponding interpreters? Justify your answer, relating it to the concepts in the course.
Give an overview of the LISP abstract machine (or execution model) and comment on its merits and drawbacks from the viewpoints of programming, compilation, execution, etc.
Define the following parameter-passing mechanisms: pass-by-value,pass-by-reference, pass-by value/result, and pass-by-name. Briefly comment on their merits and drawbacks.
What is aliasing in the context of programming languages? Explain the contexts in which it arises and provide examples of the phenomenon.
As many exam questions as you would like me to mark.
Posted on April 29, 2018
by Mistral Contrastin
Concepts in Programming Languages I
Mitchell, J.C., 2003. Concepts in programming languages. Cambridge University Press.