[coggins@cs.unc.edu: Re: divorce language from objects?] (fwd)

Dr James Coggins (coggins@cs.unc.edu)
Thu, 19 Sep 1996 15:05:19 -0400 (EDT)

Forwarded message:

> I am interested in a model where every function invocation or dataset appears
> to be a seperate CPU dedicated to that object. Thus a user/ scripting language / gui
> could ask an object
>
> What are you
>
> The object would reply code, data (others ?)
>
> For code objects, various queries would be possible, Some
> would be mandatory ie
>
>
> Copyright
> Originator (possibly a PGP key)
> Invocation
>
> Replies would detail the datatypes using primitive standard
> descriptors (ascii, unicode, byte, i4, ieee-r8, 2d, composite)
> and their status (required, optional, defaults available,
> session history etc). Composite datatypes would support domain
> specific (eg querying a FITS object using the science domain
> would reply "I am FITS" or "I am CDF" or whatever)
> queries about their contents. Some of these queries would
> normally be used to automatically populate some of
> the other arguments (like image dimensions, units etc)
>
This is one approach that can be implemented and will work fine.
However, I don't find it as parsimonious as the alternative.

In the alternative, the development efforts on both ends of the
communication link share a class library that defines all these types,
so the information about the structures etc. are already known at both ends.
Thus, it is not necessary to transmit a description of the structure to be
transmitted; both sides already know it.

I implement this by giving each class a constructor that takes a network
connection as its (sole) argument and a Send message that takes a network
connection as its sole argument. The protocols are embedded in the class
definitions of the library. This is really neat because the protocols can be
recursively defined in the class definitions. (recursion is cool)

-- 
Dr. James M. Coggins
Associate Professor & Associate Chairman for Academic Affairs
Department of Computer Science  E: coggins@cs.unc.edu
University of North Carolina	V: 919-962-1738    F: 919-962-1799
Chapel Hill, NC 27599-3175	W: http://www.cs.unc.edu/~coggins/