Study Guide for Programming Languages
Topics
- Programming paradigms
- Imperative
- Functional: higher-order functions
- Logic: resolution, unification
- Object-oriented programming: inheritance, subtyping
- Language syntax
- Meta language, object language
- Regular expressions
- Context free grammars and Backus-Naur form
- Parse trees, abstract syntax trees, syntax graphs
- Ambiguous grammars
- Parsing, recursive descent parsing
- [Attribute grammars, deprecated]
- Basic semantics
- Attributes, binding, and semantic functions
- Declarations, blocks, and scope
- Allocation, extent, and the environment
- Problems with aliasing and pointers
- Types
- integers, floating point, IEEE 754, records, etc
- type insecurities, type checking, type inference
- type equivalence
- abstract data types and modularity
- Polymorphism
- ad hoc: overloading, implicit coercion
- universal: parametric, subtype
- Control
- loops
- procedures and parameters
- procedure closures, non-local variable access
- exception handling
- Semantics: operational, denotational, axiomatic
(only superficial knowledge)
Pay special attention to the two other paradigms:
functional programming (especially ML) and logic programming (PROLOG).
The chapter each in Sebesta is not enough.
References
The primary references are:
-
Robert W. Sebesta.
Concepts of Programming Languages, fifth edition.
Reading, Masachusetts: Addison-Wesley, 2002.
ISBN: 0-201-75295-6.
All chapters, except Chapter 11: Concurrency.
-
Webber, Adam Brooks.
Modern Programming Languages: A Practical Introduction.
Franklin, Beedle & Associates, 2003. ISBN: 1-887902-76-7
-
Mitchell, John Clifford
Concepts of Programming Languages Introduction.
Cambridge, England: Cambridge University Press, 2003.
ISBN: 0-521-78098-5
Other roughly equivalent textbooks exist:
- Louden.
Programming Languages, Principles and Practice
- Scott.
Programming Langauge Pragmatics
- Sethi.
Programming Languages, Concepts and Constructs
- MacClennan.
Principles of Programming Languages
Other links:
Original Document location: http://www.cs.fit.edu/~ryan/grad/cex-prog.html
Last modified: Tue Mar 18 10:04:33 EST 2003