<html>
At 11:05 PM 2/21/2003 +0100, Hannes Hirzel wrote:<br>
<blockquote type=cite class=cite cite>On slide <br>
<a href="http://www.smalltalksystems.com/publications/_awss97/SLD016.HTM" eudora="autourl">http://www.smalltalksystems.com/publications/_awss97/SLD016.HTM</a><br>
he says that &quot;normal languages&quot; like Fortran, C++ and Java
are<br>
declarative while Smalltalk is imperative.<br>
(Slide
http://www.smalltalksystems.com/publications/_awss97/SLD008.HTM)<br><br>
In my opinion this is an unusal way of using declarative vs
imperative.<br>
I am thinking for example of Prolog, SQL and XSLT as beeing
declarative<br>
while <br>
most other of the often used languages are imperative.<br><br>
Aah now I think I can guess what he means. Instead of writing a
&quot;proper&quot;<br>
program we fill in all this little bits and pieces of code into
various<br>
panes of arcane looking tools called browsers and
inspectors.</blockquote><br>
No, instead of writing a &quot;proper&quot; program we fill in the
various arguments to arcane, implementation specific, state
sensitive,&nbsp; messages which get directed to various implementation
specific objects.<br><br>
The distinction that is being made is not the difference between the
declarative style of programming in language such as Prolog and the
imperative style of programming in languages such as FORTRAN and
Smalltalk.&nbsp; Rather it is the distinction of between a declarative
style of program representation and an imperative style of program
construction.&nbsp; In Java, a class is defined by a class
&quot;declaration&quot; which is understandable in an implementation
independent context.&nbsp; In classic Smalltalk-80 a class is constructed
by an implementation dependent sequence of message sends all of which
have initial state sensitivities.<br><br>
Browser-based Smalltalk tools present a seeming declarative class
definition model to the Smalltalk programmer.&nbsp; However, they
typically do not preserve the declarative artifacts.&nbsp; At best, they
preserve a sequence of message expressions that, given an appropriate
initial state, may be able to recreate what the programmer originally
expressed in the browser.&nbsp; <br><br>
For an example of a declarative treatment of the Smalltalk language see
the language section of the ANSI Smalltalk standard.&nbsp; The final
draft can be found at:
<a href="ftp://ftp.smalltalksystems.com/sts-pub/x3j20/" eudora="autourl">ftp://ftp.smalltalksystems.com/sts-pub/x3j20/</a><br><br>
<blockquote type=cite class=cite cite>A good question is on slide <br>
<font color="#0000FF"><u><a href="http://www.smalltalksystems.com/publications/_awss97/SLD028.HTM" eudora="autourl">http://www.smalltalksystems.com/publications/_awss97/SLD028.HTM</a></u></font><br>
- Traditional Smalltalk reflection is inherently implementation <br>
independent</blockquote><br>
Transcription error, the original said &quot;inherently implementation
dependent&quot;.<br><br>
Allen Wirfs-Brock<br><br>
<br>
</html>