CompuServe Messages

C++ Programmers

    22-Feb-91 22:23:10
Sb: #7597-C++ Programmers
Fm: Greg Comeau@Comeau Cmptg 72331,3421
To: Mike Roth/Lattice 76566,1137
If I may, I must take issue with a few comments you've made: >… the Lattice C++ preprocessor Lattice C++ is based on a poor port of early version of cfront done be a 3rd party. cfront is not a preprocessor, but a translating compiler that generates C as it's object code. cfront is a compiler, a full-fledged true complete compiler: it performs full syntax checking, full semantic checking, and full error checking as well as *all* the other normal compiler activities. C++ cannot be preprocessed into C. C++ is too complicated and too strongly typed to be just preprocessed into C. Input C++ code is translated into an intermediate and internal compiler tree form looking nothing like C or C++, just like every other compiler. The *only* difference is that during the code generation phase, cfront will happen to output C as its intermediate shape. So, instead of a vendor specific internal format going into the final back end, cfront depends upon a C compiler. The C compiler is *not* expected to do any checking of any sort (cfront did that fully already) and is only there for object code generation. If the two must be distinguishable, "translating compiler" (although still not fully accurate) and "direct native code compiler" is what should be used. > Lattice C++ is not set up to handle debugger line information I'm pretty sure the version we have performs this fine.