Symbiotic relationship of declarative and imperative systems

John W. Sarkela sarkela at sbcglobal.net
Mon Mar 3 15:35:53 UTC 2003


Howdy,

Actually, the BlueBook introduces pools as a shared scope.
Surprisingly, nowhere on pp 46-47 is the expression
'Pool Dictionary' to be found. Perhaps the declaration
should be for a Pool and the variables with their initializers
that it contains.

It's a small thing, but the point is to exorcise implementation
details from the language of declaration.

John

On Monday, March 3, 2003, at 02:43 AM, Stephane Ducasse wrote:

> Hi lex and alan
>
> I think that it would be good have a list of the changes that should 
> be made in squeak to have a declarative syntax.
>
> The obvious one is to have a
> 	- GlobalVariable declaration, PoolDictionary,
> 		instead of Smalltalk at: #MyVar put: 0
> 	We should have GlobalVariable named: #MyVar initialized: '0'
> 	
> 	- InstanceVariable declaration would be good too.
>
> 	- ClassVariable
>
> 	- I have doubt for classDefinition because even if this is currently 
> done via a
> 	message we can interpret it as a declaration.
>
> Alan (I know that you are busy) but what would be your point items for 
> such a list.
>
>
> I think that having such a list is important for the people such as 
> Avi that could use
> a much more declarative syntax for DVS.
>
> Stef
>
>
>
> On Sunday, March 2, 2003, at 06:56 AM, Lex Spoon wrote:
>
>>
>>> 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
>>
>>
> Prof. Dr. Stéphane DUCASSE (ducasse at iam.unibe.ch) 
> http://www.iam.unibe.ch/~ducasse/
>  "if you knew today was your last day on earth, what would you do
>  different? ... especially if, by doing something different, today
>  might not be your last day on earth" Calvin&Hobbes
>
>



More information about the Squeak-dev mailing list