On 17.04.2013 11:30, Uday S Reddy wrote:
Mark Janssen writes:
From: en.wikipedia.org: Programming_paradigm:
"A programming paradigm is a fundamental style of computer
programming. There are four main paradigms: object-oriented,
imperative, functional and declarative. Their foundations are distinct
models of computation: Turing machine for object-oriented and
imperative programming, lambda calculus for functional programming,
and first order logic for logic programming."
I removed the second sentence relating paradigms to computation models
and put it on the talk page instead. It does not make sense to connect
imperative programming to Turing machines like functional programming to
lambda calculus. A better match would be random access machines, but
the whole idea of a connection between a programming paradigm and a
computation model is misleading.
While I understand the interest in purely theoretical models, I wonder
two things: 1) Are these distinct models of computation valid? And,
2) If so, shouldn't a theory of types announce what model of
computation they are working from?
These distinctions are not fully valid.
- Functional programming, logic programming and imperative programming are
three different *computational mechanisms*.
- Object-orientation and abstract data types are two different ways of
building higher-level *abstractions*.
The authors of this paragraph did not understand that computational
mechanisms and higher-level abstractions are separate, orthogonal dimensions
in programming language design. All six combinations, obtained by picking a
computational mechanism from the first bullet and an abstraction mechanism
from the second bullet, are possible. It is a mistake to put
object-orientation in the first bullet. Their idea of "paradigm" is vague
and ill-defined.
Cheers,
Uday Reddy
--
Andreas Abel <>< Du bist der geliebte Mensch.
Theoretical Computer Science, University of Munich
Oettingenstr. 67, D-80538 Munich, GERMANY
andreas.a...@ifi.lmu.de
http://www2.tcs.ifi.lmu.de/~abel/
--
http://mail.python.org/mailman/listinfo/python-list