Classification of Programming
Languages
Declarative :
Implicit solution
"What the computer should
solve" |
Functional
(Lisp ,
Scheme ,
ML ,
Haskell )
Logic
(Prolog )
Dataflow |
Imperative :
Explicit solution
"How the computer should
solve" |
Procedural
"von Neumann" (Fortran ,
C )
Object-oriented
(Smalltalk ,
C++ ,
Java ) |
-
Declarative functional example
(Haskell)
gcd a b
| a == b = a
| a > b = gcd (a-b) b
| a < b = gcd a (b-a)
Declarative logic example (Prolog)
gcd(A, A, A).
gcd(A, B, G) :- A > B, N is A-B, gcd(N, B, G).
gcd(A, B, G) :- A < B, N is B-A, gcd(A, N, G).
Imperative procedural example
(C)
int gcd(int a, int b)
{ while (a != b)
if (a > b) a = a-b; else b = b-a;
return a;
}
|