On Tue, 6 Jan 2026 08:03:13 +0000, Pancho wrote:
C# is a lovely language, but isn't different enough from Java to make it
worthwhile doing something with much less online support when using
Linux.
C# is what Java should have been, I had hopes for Java in the late '90s
that were dashed when it became bloated and slow.
... I appreciate C# as a language, but I think quite a lot of
software would be better off (read: could be constructed faster) if
not written written in C# / .NET but in Java and it's ecosystem.
On the other hand, a compiler that uses another compiled language as intermediate code is a strange beast, probably better called a
translator.
Clearly the GCC collection is More Complicated than I thought.
But I'm still not sure I'll call them 'compilers'
in the older sense of the word. Some intermediate term is required.
Charlie Gibbs <cgibbs@kltpzyxm.invalid> writes:
On 2026-01-06, Waldek Hebisch <antispam@fricas.org> wrote:
In alt.folklore.computers c186282 <c186282@nnada.net> wrote:
On 1/6/26 07:16, Waldek Hebisch wrote:
In alt.folklore.computers c186282 <c186282@nnada.net> wrote: <snip> >>>>>> Hmm ... look at all the GNU 'compilers' -
FORTRAN, COBOL, Ada, 'D', M2, Rust,C++, G++, even Algol-68. None >>>>>> are 'compilers' per-se, but to-'C' TRANSLATORS. So, 'C', pretty >>>>>> much All Are One And One Is All.
No. Compiler as first stage translate given language to a common
representation. This representatiton is different than C. Ada and
GNU Pascal have parametrized types, there is nothing like that in C. >>>>> C++ (and some other languages) have exceptions, C do not have them. >>>>> There are several smaller things, for example Ada or Pascal modulo
is different that C/Fortran modulo. During optimization passes gcc
keeps such information, to allow better optimization and error
reporting.
There were/are compilers that work by translating to C. But this
has limitations: generated code typically is worse because language
specific information is lost in translation. Error reporting is
worse because translator is not doing as many analyzes as gcc do.
For those reasons compilers in gcc generate common representation
which contains sum of features of all supported languages and not C.
You give it a file in whatever lang, it produces a file in 'C' and
compiles that.
No, if you looked at what compilers in gcc are doing you will see that
there are no intemediate C file. There is intermediate assembler, but
between source file and assembler each compiler work independently
Still, Bjarne Stroustrup's first implementation of C++ was a program
called cfront, which translated C++ to C.
Rather ugly C, at that. I had to fix a bug in PCC[*] caused by the excessive use of the comma operator in the cfront generated C code.
On 1/7/26 08:13, Dan Cross wrote:
I think compilers have generated intermediate code since the first
These bizarre definitional assertions about what makes something a
"compiler" or not seem to be mostly put forth by people who have never
heard of the concept of "separate compilation" or "libraries", let
alone touched the innards of a compiler. In particular, this idea that
everything must be implemented in a single program or it's not a "true"
compiler is rooted firmly in ignorance.
FORTRAN compiler. The only distinction is one vs. multiple programs. Wth
a variety of both front- and back-ends GCC has good reason to separate
them. On the other hand, a compiler that uses another compiled language
as intermediate code is a strange beast, probably better called a
translator.
| Sysop: | datGSguy |
|---|---|
| Location: | Eugene, OR |
| Users: | 7 |
| Nodes: | 4 (0 / 4) |
| Uptime: | 219:27:11 |
| Calls: | 361 |
| Calls today: | 34 |
| Files: | 14 |
| D/L today: |
80 files (1,315K bytes) |
| Messages: | 5,781 |
| Posted today: | 1 |