Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!cs.utexas.edu!convex!psmith From: psmith@convex.com (Presley Smith) Newsgroups: comp.lang.fortran Subject: Re: F90 compiler from NAG Message-ID: <1991Jun25.020019.16764@convex.com> Date: 25 Jun 91 02:00:19 GMT References: <1991Jun24.211203.16291@cunixf.cc.columbia.edu> Sender: usenet@convex.com (news access account) Organization: CONVEX Computer Corporation, Richardson, Tx., USA Lines: 53 Nntp-Posting-Host: mozart.convex.com In article <1991Jun24.211203.16291@cunixf.cc.columbia.edu> shenkin@cunixf.cc.columbia.edu (Peter S. Shenkin) writes: >In article <1991Jun24.163115.13507@convex.com> psmith@convex.com (Presley Smith) writes: >>Seens to me to be a translator. >> >> - Since a "compiler" is a "computer program used to compile" >> >> - AND the definition of "compile" is to "translate a higher order >> language program into it's relocatable or absolute machine code >> equivalent"... >> >> Since the NAG product produces C code as output, NOT relocatable or >> absolute machine code or equivalent... >> >... >> >>If it produces C code as output, that would fit with the definition >>of a translator... >> >>If the NAG product is a compiler, then we need to change the standard >>definitions. In my mind, it's a translator. > >By your criterion, any "compiler" which first produces some intermediate >code -- perhaps shared by several language-specific front ends -- would be >not a compiler but a translator. This includes Convex's Fortran and C >products, I believe. But, you may object, the entire process taken together, >including what is unequivocally a "compilation" of the intermediate code into >assembler or machine language is certainly compilation; well, then, >the entire process of running the NAG "whatever-it-is", then doing >"whatever-you-call-it" to the resulting C program is also compilation. >And come to think about it, is a process which takes Fortran and produces >assembler a "compiler", by this definition? I guess not. The CONVEX Compiler family does NOT produce an intermediate code at any time. In fact, the CONVEX compilers directly generate object code WITHOUT generating assembly code output and then invoking the assembler as many UNIX based compilers do. If you wish to produce an assembly code output from the CONVEX compilers, you must invoke the compile with a flag to request that output. Default is direct generation of a .o file without the assembler being invoked. Direct generation of the .o file makes the compilation process about 20% faster. I guess you could consider the NAG product a compiler with the output piped into another compiler? So, how do we define that type of "system" in standard terms? I didn't say in any of my postings that I agreed with the standard definitions of "compiler" or "translator." I said in a previous posting that maybe we should update the standard definitions. By the current standard definitions for "compiler" and "translator" I still maintain that the NAG product is a "translator." FYI. Presley psmith@convex.com