home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.os.linux.misc      Linux-specific topics not covered by oth      135,536 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 134,497 of 135,536   
   Dan Cross to Peter@Iron-Spring.com   
   Re: =?UTF-8?Q?Re=3A_Naughty_C=E2=99=AF?=   
   07 Jan 26 15:13:41   
   
   XPost: alt.folklore.computers   
   From: cross@spitfire.i.gajendra.net   
      
   In article <10jlqu8$mvh2$3@dont-email.me>,   
   Peter Flass   wrote:   
   >On 1/6/26 14:24, c186282 wrote:   
   >> On 1/6/26 07:16, Waldek Hebisch wrote:   
   >>> In alt.folklore.computers c186282  wrote:   
   >>>    
   >>>>    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.   
      
   GCC's frontends, like those of most modern compilers, generate   
   an intermediate representation (that is, indeed, not C).  That,   
   in turn, is optimized and presented to a backend, that uses the   
   IR to generate machine code for a target instruction set.  In   
   this way, any of the languages that the GCC front-end recognize   
   can be targetted to any of the architectures its backend   
   supports.   
      
   Whether that machine code is in binary object code or textual   
   assembly code hardly matters; the hard work of the compiler is   
   in the transation from source to machine code.   
      
   Separate assembly and link stages are hidden by the compiler   
   driver program (e.g., the `gcc` program itself), but don't   
   change the fact that, yes, Virginia, GCC is actually a compiler.   
      
   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.   
      
   	- Dan C.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca