"Comparative Languages" is a graduate/undergraduate level introductory course in programming languages. We will cover several basic topics ranging from syntax (BNF) and semantics formalisms (attribute grammars), to data types, scope and extent, type checking, parameter passing methods, expression parsing and other fundamentals of programming languages and language development. The intent of the course is to provide a background in the concepts and constructs of languages, rather than simply providing just a survey of various computer languages. Nonetheless in this class, we will learn and program in three very different languages: Pascal (an imperative language), Java (an object-oriented language), and LISP (a functional language). I expect classes to consist of active discussions in addition to lectures; thus, class participation will be important and encouraged. Because of this reason, and because lectures will contain information not covered in the text and for which the student will be responsible on tests, attendance is crucial. Class lectures and discussions will be complemented by programming assignments, reading assignments, and problem-solving excercises.
College of Engineering and Computer Science