| Department and Course Number |
CS 480 |
Course Coordinator | Krishnaprasad Thirunarayan |
| Course Title |
Comparative Languages |
Total Credits | 4 |
Basic concepts and special-purpose facilities in programming languages
examined through several
representative languages. 4 credit hours. Prerequisite: CS 400.
Text Books
References
The student should have learned the following:
The student should be able to apply the above concepts to the following:
| Week | Lectures |
| 1 | Evolution of Programming Languages; Syntax Specification |
| 2 | Object-Oriented Programming; Java Design Goals |
| 3 | Types, Values, Variables; Arrays; Strings |
| 4 | Classes, Interfaces : Inheritance, Polymorphism |
| 5 | Midterm, Packages |
| 6 | Exceptions, Threads |
| 7 | Symbolic Data; List Processing |
| 8 | Imperative vs Functional Programming; Recursion |
| 9 | Higher-Order Functions; Scoping Rules; Closures |
| A | Meta-Circular Interpreter in Scheme |
There are two programming projects for the course, one coded in Java and another coded in Scheme. The first project illustrates programming language processing in Java, the second project emphasizes recursive definitions in Scheme. The projects are evaluated based on code clarity and correctness. These projects must be work done solely by the student, except for the parts provided by the instructor.
| Core | Advanced | Core | Advanced | |||
| Data Structures | Concepts of PL | 4.0 | ||||
| Algorithms | Comp Organization + Architecture | |||||
| Software Design | Other |
There are no oral presentations. Students submit documented source code of their projects. We do not claim that these constitute written communications.
None.
The subject matter includes specification of language syntax using context-free grammars and of functions using recursive definitions. About 15% of the class time is devoted to theoretical issues.
The lectures cover analysis of modern languages such as Java, Scheme, etc.
The lectures cover issues relevant to the design of modern programming languages.