[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