Computer Science
Generic Course Syllabus
(For actual course syllabi please
consult the schedule
of classes, determine the instructor
for the courses and consult his or her home page.)
| Course #: | C311 |
| Course Title: | Structure of Programming Languages |
| Prerequisites: | C243, C335 |
| Credits: | 4 |
| Text Book: | Essentials of Programming Languages, by Friedman, Haynes, & Wand |
| Supplemental Texts: | Handouts |
| Course Information: | The course is designed to provide students with a high level view of programming languages, how they differ in design and implementation, and why some have failed. In recent years, Scheme has been the vehicle by which a number of programming concepts have been illustrated. |
| Other Information: | 1. Compiled languages vs. interpreted languages.
2. Scheme and its LISP ancestry. 3. Meta-languages. 4. Expression oriented vs. imperative languages. 5. The essentials of the Scheme language 6. First class objects; higher order procedures. 7. Recursion; debugging with "begin" and output. 8. Tail recursion elimination. Essentially iterative procedures. 9. Deep recursion. 10. Program translation phases. 11. Grammars for syntactic specification; Backus-Naur. 12. Scope; free and bound variable references; lexical address. 13. Finite functions. 14. Interpreters for little languages. 15. Parsing and parse trees. . 16. Mutation. 17. Dynamic scope. 18. Parameter passing methods. |