COSC 3410 - Programming Languages Fall 2019 Final exam study guide The final exam will be 10:30AM-12:30PM on Wednesday, Dec 11 in our usual classroom. It will be closed book, closed notes. You may bring a 3x5 notecard (both sides) if you wish. Anything we've discussed this semester is fair game. Be sure to look over the study guide for the midterm. There will be more of an emphasis on topics since the midterm. These include: Little Schemer Topics/Chapters ----------------------- Functions as parameters and results (e.g. currying): beginning of 8 Partial functions and Halting Problem: pp.149-159 Krishnamurthy (1st Ed) Topics/Chapters ------------------------------- Deferred Substitution: 5 First-Class Functions: 6 Implementing Recursion: 9, 10 Types: 24, 25 Prolog (discussed in class and Chap 33 of Krishnamurthi) There will not be any questions on the final about Fortran (or Erlang). You should be able to --------------------- Read/Write Scheme functions of the sort we encountered in homework/class examples. Explain Eager vs Lazy evaluation. Replacing "subst" in the interpreter with a list of deferred substitutions. Explain static scope vs dynamic scope, closures Use boxes in Scheme (like in cyclically-bind-and-interp for implementing recursion). Implement multiple parameter functions via currying. Read and determine output of a simple Prolog program. Write rules for simple Prolog predicates. Read and write simple programs in the project languages BOB and Typed BOB. Evaluate function parameters with call-by-value, call-by-reference, or call-by-value-result. Type checking TBOB programs. Writing small, special-purpose parsers like type-parse.