But, logical programming is closely related to functional programming, so something is probably wrong here. Or else, a hierarchy is inappropriate. I am also thinking of a triangle diagram with the following corners: Imperative, Functional, and Data-centric.
You might do better to start with a list of pairs, each being a style and a language that exemplifies the style. For example:
- Functional/strict - ML
- Functional/non-strict - Haskell
- Logic - Prolog
- ObjectOriented - Smalltalk
- CSP - Occam
- Dataflow - Lucid
- Imperative - BCPL
Then try to find similarities and differences. I suspect that a hierarchy is not appropriate, and that no simple structure will suffice. I suspect that each language needs to be ranked on several scales simultaneously. Then one could do PrincipleComponentAnalysis
? to see what scales are related, thereby finding the paradigms.
See Also: ProgrammingParadigm