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
|