Organization of Programming Languages
Revised: August 2008 (Bill Kreahling)
Course Description
Syntax, semantics, language design and translation. Language models: imperative, functional, logic, and object-oriented. Language ideas: data aggregates, procedural abstraction, data abstraction. Example languages may be chosen from C, Scheme, Prolog, Smalltalk, C++, Ada, Perl, Php.
3 credit hours, offered fall semester, required for major and elective for minor, prerequisite is CS 151.
Text
Required: Robert W. Sebesta, Concepts of Programming Languages, seventh edition, Addison Wesley, 2005
Grading Procedure
Grading procedures and factors influencing course grade are left to the discretion of individual instructors, subject to general university policy.
Attendance Policy
Attendance policy is left to the discretion of individual instructors, subject to general university policy.
Course Outline
- Introduction
Why study programming languages? Language evaluation and design criteria - A Brief History of Programming Languages
A brief discussion of the evolution of programming languages, focusing on the major design elements introduced by each. - C Programming Language
Discussion of the C programming languages, discussion of similarities and differences between C and Java. Arrays, strings, pointers, preprocessing, compilers, linkers, loaders. - Language Syntax and Semantics
Lexical analysis, parsing, recursive descent parsing, grammars, attribute grammars, ambiguity, precendence and associativity. - Naming, Binding, Scope and Related Topics
Naming conventions, type checking, variable scope, type combatability, and lifetime. - Functional Languages and Scheme
A brief introduction to the functional languages, in particular the Scheme programming language. - Data Types and Perl
Primitive types, character types vs Strings; ordinal types, arrays (in depth); row-major vs column major; pointers, references, records, and unions. An introduction to Perl (time permitting). - Expressions and Exceptions
Operators, operands, overloading, type conversion, and exception handling. - Logic Languages and Prolog
A brief introduction to Logical based programming languages, in particular the Prolog programming language.







