Ouch. This isn't an easy one but here's my take at it.
1. Imperative languages (like C).
Script starts at point A and ends at point B. You get total control on the flow of your program since you've specified it very strictly. Hence the "imperative" part.
2. OOP
In pure OOP, you design objects and interactions between them. Then, you let them interact amongst themselves, using as little "forced" interactions (which would fall in imperative paradigm).
3. Functional
I've been learning Lisp for some time, and even though I'm getting the hang of it and noticing the HUGE difference between it and, say, imperative. Here's how comp.languages.functional describes it :
Quote:
Functional programming is a style of programming that emphasizes the evaluation of expressions, rather than execution of commands. The expressions in these language are formed by using functions to combine basic values. A functional language is a language that supports and encourages programming in a functional style.
|
http://www.cs.nott.ac.uk/~gmh//faq.h...onal-languages
What we notice, too, in functional programming is that functions are objects, as much as any user-defined class instance or built-in types, so you can pass functions as arguments to other functions, code functions which have functions as return value, etc.
You forgot
4. Logic programming
Quote:
A type of programming consisting of facts and relationships from which the programming language can draw a conclusion.
|
I've never (yet) done any logic programming, so I just know it exists.