Re: Can't read CString after serialization

Tech-Archive recommends: Fix windows errors by optimizing your registry



Can't argue with any of that... :o)

Tom

"Joseph M. Newcomer" <newcomer@xxxxxxxxxxxx> wrote in message news:hgaet354ssc3asdvmm4506fljjhnufchkt@xxxxxxxxxx
Remember that the machines of that era were 1000x slower than a low-end consumer machine,
had 18-bit or 24-bit addresses, "huge" machines (like the one I used) had 4MB of memory (I
tell people "The first 4MB module I purchased required a fork lift to install", which is
true, but not quite accurate; it required an "extended fork" fork lift to install it). We
actually had an XML-like notation we used (I think I may have invented XML in 1974 while
working on my dissertation, simply because I needed a textual representation of complex
graphs). When we started the PQCC (Production Quality Compiler-Compiler) project at CMU
in 1977, I insisted we have a textual representation of the data structures. Steve Hobbs
designed what would have been the DTD and wrote the first parser. Parsing it was slow
enough that we had a tagged-binary representation we could also use. David Dill (noted
for his work on Verified Voting) wrote the tagged-binary I/O module for us, around 1978.

The tagged binary version was smaller than the textual version, and read in much faster.
Eventually I got to the point where the binary reader was blindingly fast compared to the
text reader, about three iterations from our first implementation.

We used it to represent compiler intermediate state. Our parse trees, flow graphs,
generated-code lists, etc. were all represented in this format. I wrote the second
generation tooling that did the equivalent of parsing a DTD and creating a table-driven
interpreter that would convert the external form to internal form, as well as truly pretty
pictures of the data structures. I later wrote the same package for IDL when we were at
Tartan Laboratories (a compiler company in Pittsburgh). John Nestor and I wrote the
interface to the implementation language we were using. David Lamb and John Nestor took
the work we had done on the "LG" (Linearized Graph) package and invented the IDL language,
which gave us platform-independent representations of very rich data structures (it was
David's PhD dissertation). We could write out the IDL text from a compiler on one machine
and read it into a code generator hosted on another machine. John Nestor and Paola
Gianinni wrote the formal (denotational semantic) description of IDL, which supported
multiple inheritance and subclassing. Don Stone helped us implement the open-source
portable version described in our book.
joe


.



Relevant Pages

  • Re: Cant read CString after serialization
    ... I insisted we have a textual representation of the data structures. ... I later wrote the same package for IDL when we were at ... parse the file and show it (for example, a columnar display of tag id, tag ...
    (microsoft.public.vc.mfc)
  • Re: CPtrList - Please Help me understand
    ... object of type notice*, and you won't need to do casts at all. ... >Now although bp has a pointer to an object of type B (which we know because we created ... >compiler now happily does the assignment. ... >Generally, casting has no effect on the representation of a value, other than instructing ...
    (microsoft.public.vc.mfc)
  • Re: What I can to do with old PL/1 code?
    ... >> I have IBM Visual Age PL/1 compiler, ... > issues related to limitations on precision and representation of real ... > the same binary precision for all floating point numbers. ...
    (comp.lang.pl1)
  • Re: Trap Representations - c99 [again]
    ... This could happen through missing initialisation of an automatic ... changing the representation via overlaying an array of unsigned char, ... I.e., if an auto is explicitly initialised, it may *never* hold a trap value; no matter how it's been initialised - right? ... Building upon that, every C compiler I've ever used issues a warning along the lines of 'x' is not initialised before it is used - if such a diagnostic is *required* by the c99 standard, then traps should never occur - if of course you're paying attention to the warnings your compiler issues! ...
    (comp.lang.c)
  • Re: give me some tips
    ... as you can state really deep problems on a sheet of paper within ... I'm not sure exactly where I can use it in a compiler. ... If you introduce an intermediate representation, ... e.g. a tree; if you compile on a translation unit by translation ...
    (comp.lang.c)