[TYPES] The type/object distinction and possible synthesis of OOP and imperative programming languages

Andreas Abel andreas.abel at ifi.lmu.de
Wed Apr 17 10:42:25 EDT 2013


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.abel at ifi.lmu.de
http://www2.tcs.ifi.lmu.de/~abel/


More information about the Types-list mailing list