The description of imperative programming on wikipedia is:
In computer science, imperative programming, as contrasted with
declarative programming, is a programming paradigm that describes
computation as statements that change a program state. In much the
same way as the imperative mood in natural languages expresses
commands to take action, imperative programs are a sequence of
commands for the computer to perform. A commonly used synonym to
imperative programming is procedural programming.
From the tiny bits of dabbling i've done with smalltalk, it very
much doesn't seem very declarative. Further, its very much about
state. Sure, you affect the state via a pattern called message
passing, but its still about "statements that change a program state
(one object at a time)"
I had never before thought about OOP as being imperative, but i think
i'm convinced.
sRp
On Mar 29, 2007, at 5:17 AM, Boriss Mejias wrote:
George Rudolph wrote:
I am no longer convinced that object-orientation is really a
separate paradigm from imperative programming.
A very useful design pattern yes, but not necessarily a separate
paradigm.
You could arrived to this conclusion if you just consider Java and C
++ as object-oriented programming languages. There you can write
programs without a single object. But, if you want to conclude
something about OOP, at least you have to consider languages like
SmallTalk, where the paradigm is very simple and well defined:
Everything is an object, and objects send message to each other.
That's really a programming paradigm, not just a design pattern. In
fact, you can build imperative programming on top OOP.
cheers
Boriss
--------------------
George Rudolph
Assistant Professor
Thompson Hall 225
Math & Computer Science Dept.
The Citadel
171 Moultrie St.
Charleston, SC 29414
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
oz.org] On
Behalf Of Peter Van Roy
Sent: Wednesday, March 28, 2007 10:51 AM
To: Mark Miller
Cc: Mozart users
Subject: Re: Overview of principal programming paradigms
Mark Miller wrote:
Peter VAN ROY wrote:
Dear all,
I've made a diagram showing all major programming paradigms
and their relationships:
- http://www.info.ucl.ac.be/people/PVR/paradigmsDIAGRAM.pdf
Unfortunately it's in French and I don't have time right now
to translate it into English. I made it for a keynote talk
I will be giving in June at IRCAM, the computer music institute
in Paris. I hope the diagram will still be interesting for you
(and if someone wants to translate it into English, feel free!).
All comments are welcome of course.
Is the object-capability paradigm represented?
Yes, I think so. According to the diagram, E supports two
paradigms:
secure functional programming (using seal/unseal actually, which
allows
building secure ADTs) and programming with active objects. E
actually
is more serious about multi-agent programming than other systems,
which
leads to its good security. The degree of "seriousness" is not
shown on
the diagram.
Do you think that "object-capability" deserves its own box? If
so, how
does
it link to existing boxes?
Peter
____________________________________________________________________
______
_______
mozart-users mailing list mozart-
[EMAIL PROTECTED]
http://www.mozart-oz.org/mailman/listinfo/mozart-users
_____________________________________________________________________
____________
mozart-users mailing list mozart-
[EMAIL PROTECTED]
http://www.mozart-oz.org/mailman/listinfo/mozart-users
______________________________________________________________________
___________
mozart-users mailing list mozart-
[EMAIL PROTECTED]
http://www.mozart-oz.org/mailman/listinfo/mozart-users
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users