Marco van de Voort schrieb:

I am curious: Since compilers are your domain, allow me to ask: Do you think Borland did that (peppering code with '$externalsym xx ' stuff) because there was not other/better way? And, if you had a truly compatible C/C++ compiler, would you end up doing that too?

I fear so. The trouble is that I think that joining two so different
languages (I mean as far as interfacing goes, e.g.  C's big reliance on
preprocessing that is very freeform and has no automated equivalent) totally
transparently is very, very difficult. Maybe even not possible.

Personally, I would invest more time in this before I went on a wild goose
chase, and question why there are no quality automated translators already,
after these languages have been side by side for 4 decades.

IMO we should separate C from C++ in this debate. C++ has a very different object model form the Delphi one, as have other languages as well (Java, Oberon et al. - which also use GC allover). That's why a restriction to only C will result in much simpler solutions, as I demonstrated in my ToPas converter. An only-C front-end for an Pascal compiler would be sufficient to me, allowing to use existing C library code immediately in Pascal programs.

The problem, that lead to the stall of the ToPas project, is the separation of the C #defines into true constants, functions and macros. When the user has to classify each of the #defines in e.g. Windows.h (about 900) himself, this makes the entire project unusable. But when instead the C code is preprocessed automatically, and fed directly into the tree generation of the compiler, such user decisions are no more required.

The pie in the sky scenarios might turn out to be attractive on paper only
e.g.  when only a very small subset of headers might be readily usable
without heavily adding finely grained directives.
Borland had a commercial C++ compiler, commercial Pascal compilers,
knowledge in the company, and they didn't. I think they suspected that
something fully automated would never be possible, and keeping it lowtech
and transparents makes it doable for more users.

The BCB was a nice try, aimed at the C++ coder community, but Borland only could establish it as a serious MSC competitor, that forced Microsoft to upgrade their crappy MSC (and other) tool suites into the up-to-date MSVC development system. Since that time the development of the VCL and IDE was the only thing Borland could do, and its low market acceptance lead to the sale of that division, that ended up in Embarcadero.

DoDi


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to