CIS24 Programming Languages
Instructor
- Prof. Neng-Fa Zhou, Room 1161 Ingersoll Hall
- Class hours: 6:20-9:00 Thursday (room New Ingersoll 214)
- Office hours: 5:00-6:00 Tuesday and Thursday
Topics
Three major programming paradigms (object-oriented, functional, and logic), formal languages for language specification (regular expressions and context-free grammars), scanning and parsing, language implementation techniques, language evolution, OOP characteristics (abstract data types, inheritance, dynamic binding, and polymorphism), Java, functional programming characteristics (single-assignment variables, recursion, pattern-matching, high-order functions, and lazy evaluation), Scheme, constraint logic programming characteristics (logic variables, rule-based programming, unification, recursion, backtracking, and meta-programming), Prolog and CLP, scripting languages, run-time systems and memory management.
Textbook
Useful resources
- CYGWIN for Windows with g++
- Java online resources:
Java Compiler (J2SDK 1.5),
Language Specification ,
API
, Tutorial , JavaWorld , Servlet , FAQ
- Logic & Constraint Programming: Logic Programming , Constraint Programming , B-Prolog, SWI-Prolog, The Art of Prolog
- Functional programming: MzScheme, The Scheme Programming Language, Scheme FAQ, SML/NJ , Haskell
Grading
- Homework: 30
- Midterm exam: 30
- Final exam: 40
Syllabus
- Introduction (Chapter 1)
- Defining Program Syntax (Section 2.1)
- OOP (Chapter 9)
- Functional Programming (Chapter 10)
- Characteristics of functional languages
- Scheme
- Variables, constants, operators, and expressions
- Defining and using functions
- Recursions
- HW4
- More examples (ML and Haskell)
- Extra-credit HW: Do questions in HW1 in Scheme. One extra point is given for each correct program.
- Sample midterm
- Logic and constraint programming
- Characteristics and examples of logic languages
- Prolog
- Prolog terms
- Unification and SLD resolution
- Recursions
- Backtracking and search
- Meta-programming
- Constraint logic programming
- Extra-credit HW: Do questions in HW1 in Prolog. One extra point is given for each correct program.
- Scanning and Parsing (Section 2.2 and 2.3)
- From regular expressions to deterministic finite automata (DFA)
- DFA simulation
- HW7
- Parse trees
- Precedence and associativity
- Elimination of ambiguity and left-recursion
- Top-down parsing and bottom-up parsing
- HW8
- Run-time Systems and Memory Management (Chapter 8)
- Parameter passing
- Activation records
- Calling and returning sequences
- Memory management (stack and heap)
- Garbage collection
- Scripting Languages (Chapter 13)
- Final exam May 22 6:20 ( Sample solutions)