1 - Introduction#

../../_images/programming-languages-timeline.png

Language Categories#

  • Imperative

  • Functional

  • Logical

  • Object-oriented

Imperative Programming#

Von Neumman architecture:

../../_images/von-neumann-architecture.jpg

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\)