Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #43749

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

Date 2013-04-17 10:30 +0100
From Uday S Reddy <u.s.reddy@cs.bham.ac.uk>
Subject Re: [TYPES] The type/object distinction and possible synthesis of OOP and imperative programming languages
References <CAMjeLr_7A-NRtec=K_ZsjXA_oJHnD6+vpttz4Ma0vtDRbb+o2w@mail.gmail.com> <CAOvMSvXy=iJhUtMfncv-RE3HQw+7DJO-M1-TaeAFFhnDe9mpUA@mail.gmail.com> <CAMjeLr9WQz3KdXGYZUPumHj5MdBH29tYY0fdV49FNnDycDNWkQ@mail.gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.717.1366191046.3114.python-list@python.org> (permalink)

Show all headers | View raw


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."
> 
> 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

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: [TYPES] The type/object distinction and possible synthesis of OOP and imperative programming languages Uday S Reddy <u.s.reddy@cs.bham.ac.uk> - 2013-04-17 10:30 +0100

csiph-web