[DGD]DGD Spec Sheet
Jason Cone
jcone at uscdev.com
Tue Apr 11 23:22:35 CEST 2000
> Architecturally DGD has a number of distinct parts:
>
> * an object-oriented dialect of C/C++ named LPC, which supports rapid
> prototyping;
Actually, and this is a pet-peeve of mine, LPC doesn't borrow syntax from
C++ that doesn't already exist in C. The only non-datatype keyword that I
think of that exists in both LPC and C++ and _not_ in C is 'catch'. Even
then, though, the usage of that keyword is completely different. To me, C++
can be as different from C as night is from day. As such, I myself would be
a bit confused by the above statement.
> The LPC Language
> ----------------
> The LPC language (also known as Pike) is an object-oriented dialect of
As Kris already pointed out, LPC existed long before Pike started
development. Pike, I believe, is an off-shoot of the LPC4 project.
> - dynamically resizable arrays support concatenation,
> subtraction, union, and intersection; arrays are passed by
> pointer, i.e. call-by-name
I'm not familiar with a parameter-passing model termed "call-by-name"
(call-by-reference and call-by-value are the only ones I'm aware of), so
I'll assume you mean call-by-reference (which would be correct).
> - mappings are associative arrays with O(lg N) look-up and
> insertion complexities; mappings are passed by pointer, i.e.
> call-by-name
Another nit pick -- it should be O(ln N) (assuming that that's the correct
complexity).
> Database
> --------
> DGD maintains persistence as a characteristic of its runtime
> environment. It does this through an integral database without any
> internal or external separation of functionality. Object swapping allows
> for gigabyte-sized databases.
>
> * full system state dump files implement persistence across reboots
> as well as snapshot-style state backups using fast database copy
> without forking
> * seamless object swapping mechanisms allow for smoothly running
> systems with states exceeding machine capacity by orders of magnitude
Machine capacity for what? Disk-space, memory, etc.?
> * the mapping data type allows for rapid (O(lg N)) data lookup within
> objects
I guess I'm confused as to how the mapping is tied directly to the object
database.
Anyway, those were some little things that stood out to me. This is a great
document, though, and serves to educate the experienced and the newbie
alike. Kudos on your effort.
JC
List config page: http://list.imaginary.com/mailman/listinfo/dgd
More information about the DGD
mailing list