Part 7 Programming Languages
Compilers
- regular expressions
- finite automata
- context-free grammar
- recursive-descent parsing
- storage organization
- activation record
- parameter passing
- symbol table
- dynamic storage allocation
OOP
- state (instance variable, data members) I behavior (methods, member functions) of a class
- class, instance/class variables
- data access: public I private I protected
- Inheritance (is-a) versus Composition (has-a)
- upcasting, downcasting
- message passing, receiver, this
- constructors: default constructors
- get/set methods
- high-level versus low-level classes/methods
- overloading/overriding
- polymorphism
- reading/writing objects for persistence
- super/subclasses; super/subinterfaces
- abstract classes and methods
- OOP languages (Java and C++)
Functional Programming
- types
- pattern-matching
- recursion
- lambda expressions
- polymorphism
- higher-order functions
- FP languages (Haskell and Python)
Textbooks
- Aho A., Lam, M., Sethi, R., Ullman, J., Compilers: Principles, Techniques, & Tools, Addison Wesley, 2007.
- Timothy Budd, An Introduction to Object-Oriented Programming, 3rd Edition, Addison Wesley, 2002.