A declarative model of Smalltalk (was Re: [DOCS] SUnit tests)

Hannes Hirzel hannes.hirzel.squeaklist at bluewin.ch
Fri Feb 21 22:05:55 UTC 2003

Hannes Hirzel <hannes.hirzel.squeaklist at bluewin.ch> wrote:
> John W. Sarkela <sarkela at sbcglobal.net> wrote:
> > 
> > On Friday, February 21, 2003, at 12:35 PM, Hannes Hirzel wrote:
> > [...]
> > >>>
> > >> YES YES YES. This is perhaps the most hotly misunderstood
> > >> aspect of the ANSI standard. It is a non-reflective declaration
> > >> powerful enough to describe a fully reflective runtime program.
> > >>
> > >> Most users of VSE never realized that they were revisioning
> > >> non-reflective declarations of very reflective programs.
> > >
> > > Could you please elaborate this a bit or send a pointer
> > > to a paper which gives more details.
> > 
> > The first initiation for me was the 1998 OOPSLA in San Diego
> > in which Allen Wirfs-Brock and Brian Wilkerson wrote a paper
> > with a title very much like "Modular Smalltalk".
> > 
> > Allen has expounded on this topic and there used to be a set
> > of slides at www.instantiations.com. Try looking for publications at
> > that site. Also look for Allen's postings on this list.
> > 
> > I'll try to find time this weekend to put together some of my thoughts
> > on the topic. Lots of interesting stuff was going on at Digitalk just
> > prior to the merger with ParcPlace.
> > 
> > The distinction between the declaration of a program and its
> > runtime incarnation as a wildly reflective system is really very subtle.
> > 
> > Cheers,
> > :-}> John
> Thank you for the pointer. I found this
> A declarative model for defining Smalltalk programs (summary)
> http://www.smalltalksystems.com/publications/_awss97/SSDCL1.HTM
> and
> Full presentatioin
> http://www.smalltalksystems.com/publications/_awss97/INDEX.HTM
> Is it this what you mean?
> -- Hannes

On slide 
he says that "normal languages" like Fortran, C++ and Java are
declarative while Smalltalk is imperative.
(Slide http://www.smalltalksystems.com/publications/_awss97/SLD008.HTM)

In my opinion this is an unusal way of using declarative vs imperative.
I am thinking for example of Prolog, SQL and XSLT as beeing declarative
most other of the often used languages are imperative.

Aah now I think I can guess what he means. Instead of writing a "proper"
program we fill in all this little bits and pieces of code into various
panes of arcane looking tools called browsers and inspectors.

Another interesting slide - Unnecessary implementation assuptions

Slide http://www.smalltalksystems.com/publications/_awss97/SLD026.HTM
Reflection vs. the Declarative Model 
brings it to the point.

A good question is on slide 

- Traditional Smalltalk reflection is inherently implementation
- Why not objectify the abstract declarative description of a Smalltalk

A new architecture for Smalltalk Development

And finally it comes - watch out all you tiny image specialists

The 3+4 image < 10kB

To summarize. I consider theses things to be interesting. 
But what I am interested most is learning how this affects what John
Sarkela wrote today:

>This declarative technique is the razor's edge by which a "timeless"
>configuration of a program may be archived independently
>of the very dynamic image in which it was generated.

-- Hannes Hirzel

P.S. I cc this to "Alejandro F. Reimondo" <aleReimondo at smalltalking.net>
because I would like to hear his opinion. Alejandro: You have to check
out the previous emails in this  thread as well.

More information about the Squeak-dev mailing list