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
AFAIK you can remove C compiler binary and other compilers in
gcc will still work.
So, I'll basicallyA I wrote, you can use "via C" translators, but results are
stick with my 'translator' def. And if 'C' does not
'natively support' something you can FAKE it with code,
not really anything you CAN'T do with 'C'.
not so good as with dedicated compilers, that is why gcc
contains separate compilers.
By 'compiler' I mean "source in -> (agitating sounds) ->By that definition gcc does_not_ contain a C compiler:
binary executable out.
gcc generates assembly and then assembler and linker produce
final executable. Things are more complicated when you use
LTO, because "linker" in this case actially is doing large part
of compiler work and optimized code before producing final
executable. But non-LTO compilation works via assembly.
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.
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. So, I'll basically
stick with my 'translator' def. And if 'C' does not
'natively support' something you can FAKE it with code,
not really anything you CAN'T do with 'C'.
By 'compiler' I mean "source in -> (agitating sounds) ->
binary executable out.
I think there are still a few FORTRAN compilers out
there for Linux, maybe COBOL too. There's at least
one forth IDE/compiler. Digital Mars makes 'C' and
'D' compilers. GCC is not the alpha and omega
of software development.
But it CAN be much more friendly and/or
tuned to a particular area of interest
or preferred programming style.
On 1/6/26 14:24, c186282 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. So, I'll basically
stick with my 'translator' def. And if 'C' does not
'natively support' something you can FAKE it with code,
not really anything you CAN'T do with 'C'.
By 'compiler' I mean "source in -> (agitating sounds) ->
binary executable out.
I think there are still a few FORTRAN compilers out
there for Linux, maybe COBOL too. There's at least
one forth IDE/compiler. Digital Mars makes 'C' and
'D' compilers. GCC is not the alpha and omega
of software development.
But it CAN be much more friendly and/or
tuned to a particular area of interest
or preferred programming style.
Iron Spring PL/I compiles directly to binary. It can produce assembler >output, but only as a by-product of generating the object file. I have >occasionally thought of trying to make it another front-end for GCC. As
I understand it, GCC compiles to an intermediate language, not to C.
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.
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.
| Sysop: | datGSguy |
|---|---|
| Location: | Eugene, OR |
| Users: | 7 |
| Nodes: | 4 (0 / 4) |
| Uptime: | 219:27:05 |
| Calls: | 361 |
| Calls today: | 34 |
| Files: | 14 |
| D/L today: |
80 files (1,315K bytes) |
| Messages: | 5,781 |
| Posted today: | 1 |