Related articles |
---|
[Info] Portable Object Compiler stes@mundivia.es (David Stes) (1997-07-08) |
Re: [Info] Portable Object Compiler stes@mundivia.es (David Stes) (1997-07-09) |
Re: [Info] Portable Object Compiler chriseb@nortel.ca (Chris Ebenezer) (1997-07-13) |
Re: [Info] Portable Object Compiler stes@mundivia.es (David Stes) (1997-07-16) |
From: | David Stes <stes@mundivia.es> |
Newsgroups: | comp.compilers |
Date: | 9 Jul 1997 23:18:56 -0400 |
Organization: | Compilers Central |
Keywords: | C, OOP |
> How does this differ from the Objective C front end that
> comes with GCC?
>
> -John
They're different compilers for the same language ("syntax").
Objective-C as developed by Stepstone (http://www.stepstn.com)
But note that gcc is a two-pass compiler, not a three-pass, as
this entirely new compiler... gcc doesn't output intermediate C code.
Having intermediate C code is interesting if you want to use
Objective-C on some platforms with good native C compilers,
some new high-end IRIX workstations (MIPS-pro C compiler),
or some HP-UX workstations with the PA-RISC cc.
Or simply (at the low end), 16-bit compilers like the WATCOM wcc,
that support the different DOS memory models.
Or, if you want to use a C++ compiler as back-end.
[gcc has Objective-C and C++, but not an "Objective-C++" frontend to C++].
In addition, because it's a small project compared to something "big"
like gcc, it allows for much more focus on, and faster development of
the Objective-C side of things ...
Examples that come to mind are the inline-cache messenger, the
compiler support for archiving Objective-C objects, thread-safety,
support for garbage collection, and experiments related to adding
"blocks" to the language ...
The runtime libraries are significantly different. A lot of work went
into the development of the "standard object library" that comes with
the compiler, as opposed perhaps to the compiler itself.
In the spirit of the language, those objects are internally
implemented in C (e.g. big-int arithmetic, or modular polynomial
arithmetic), but externally look like Smalltalk classes.
Hope this motivation answers a bit the question,
David.
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.