Symbiotic relationship of declarative and imperative systems

Lex Spoon lex at cc.gatech.edu
Sun Mar 2 05:56:01 UTC 2003


> This is tricky stuff, so I may not be grasping the subtleties of your 
> explanation. As I understand it, however, "a sequence of operations 
> that transition a system from one state to another" would be an 
> imperative specification.


Many interpreters are going to do the following: "parse a series of
changes from this file, and then apply the changes in sequence".  So
it's not necessarily so different.

Everyone is missing Alan's point.  A "declarative" syntax still requires
that you have an interpreter to make sense of it.  Thus the difference
is pretty subtle, at least in theory.  It's the difference between
interpreter+language, versus interpter1+interpreter2+language.


Let me get more pragmatic for a moment.  In *practice*, imperative versus
declarative is about the same.  First, you can perfectly well read a
Squeak fileout, in practice, as if it were declarative.  There are only
5-10 forms that you must support.  Second, you can go to the
trouble, if you like, of making up a Smalltalk environment where code
changes don't directly modify the system, but instead log themselves
into the currently active changeset.



-Lex



More information about the Squeak-dev mailing list