1 - Introduction#

Language Categories#
Imperative
Functional
Logical
Object-oriented
Imperative Programming#
Von Neumman architecture:

This is a type of state machine.
Functional Programming#
Mathematical functions: \(y=f(x)\), \(\ z=f(x,y)\), \(\ y=|x|\)
Function composition: \(h(x) \equiv f(g(x))\)
Map
Recursion
Logical Programming#
Rule-based (rules specified in no particular order)
parent(X,Y) :- mother(X,Y).
parent(X,Y) :- father(X,Y).
grandparent(X,Z) :- parent(X,Y), parent(Y,Z).
Object-oriented Programming#
Encapsulation
Inheritance
Polymorphism
Language Constructs#
Variables
Expression and assignments
Control structures
Functions
\(\dots\)