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


Groups > comp.lang.python > #43749 > unrolled thread

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

Started byUday S Reddy <u.s.reddy@cs.bham.ac.uk>
First post2013-04-17 10:30 +0100
Last post2013-04-17 10:30 +0100
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  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

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

FromUday S Reddy <u.s.reddy@cs.bham.ac.uk>
Date2013-04-17 10:30 +0100
SubjectRe: [TYPES] The type/object distinction and possible synthesis of OOP and imperative programming languages
Message-ID<mailman.717.1366191046.3114.python-list@python.org>
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

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web