Topics Covered
- Functional Language: Scheme
- C: pointer, left/right value...
- OOP: C++. (Remember java?)
- Logic Programming: Prolog
- Formal Languages: Grammar, Regular Expressions...
- Scope
- Parameter passing
- Type System
- Concurrency
Functional Language: Scheme
- List: car/cdr/cons
- Parameter/Variable binding (no assignment, just binding)
- Recursive call
- Higher order function
C: pointer, left/right value...
- Control structure
- Variable assignment: left value, right value
- Pointers
- Memory Layout, pointer arithmetic.
- Function Pointers
OOP: C++. (Remember java?)
- OOP, similar with java
- Pointers dereference. (java only have references, and dereference implicitly)
- Manage memory allocation and free up by your self.
- Polymorphism: virtual/non-virtual functions. (all methods in java are virtual)
Logic Programming: Prolog
- Predicates.
- Backtrack
- Recursive Thinking
- Lists.
- Trees.
- Patten match/ Unification /Variable Binding
Formal Languages
- Grammars, ambiguity
- Left/Right associative
- Operator precedence.
- Regular Expressions
- FSA: non-deterministic/deterministic
- ...
Scope
- Static Scoping:
- Dynamic Scoping
- Difference, how to identify the "outer/father" scope?
- Statically Defined Outside?
- One frame below the stack?
Parameter passing
Type System
Concurrency