Scott Parish wrote:
The description of imperative programming on wikipedia is:

In computer science <http://en.wikipedia.org/wiki/Computer_science>, *imperative programming*, as contrasted with declarative programming <http://en.wikipedia.org/wiki/Declarative_programming>, is a programming paradigm <http://en.wikipedia.org/wiki/Programming_paradigm> that describes computation as statements <http://en.wikipedia.org/wiki/Statement_%28programming%29> that change a program state <http://en.wikipedia.org/wiki/State_%28computer_science%29>. In much the same way as the imperative mood <http://en.wikipedia.org/wiki/Imperative_mood> in natural languages <http://en.wikipedia.org/wiki/Natural_language> expresses commands to take action, imperative programs are a sequence of commands for the computer <http://en.wikipedia.org/wiki/Computer> to perform. A commonly used synonym to *imperative programming* is procedural programming <http://en.wikipedia.org/wiki/Procedural_programming>.


Hi Scott,

From the tiny bits of dabbling i've done with smalltalk, it very much doesn't seem very declarative.

true

Further, its very much about state. Sure,

indeed

you affect the state via a pattern called message passing, but its still

yes, that's the only thing objects can do. Send messages to other objects.


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.

sure, OOP could be built as an extension of imperative programming, but also as an extension of functional programming. What's even nicer, you could build imperative programming as an extension of OOP.

Maybe the point is "what do we call a programming paradigm". To me, if it changes the way I conceive the programs, then, it deserves to be a paradigm. Having 'if' as a message to a boolean object instead of a control flow operation, changes the way of conceiving your programs.

and btw, the wikipedia claims that OOP is programming paradigm. :)

cheers
Boriss


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] 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] <mailto:[EMAIL PROTECTED]>
http://www.mozart-oz.org/mailman/listinfo/mozart-users
_________________________________________________________________________________
mozart-users mailing list [email protected] <mailto:[email protected]>
http://www.mozart-oz.org/mailman/listinfo/mozart-users
_________________________________________________________________________________
mozart-users mailing list [email protected] <mailto:[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
_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to