Talk:Compiler

duplication
the "types of compilers" section is a duplication of text at the very top of the page.

Compiler Execution process section
Hello, , , let us discuss about Compiler Execution process section that kept being reverted over and over again. Please remember not to engage in edit war, but seek consensus. Let us discuss! SunDawn (talk) 16:56, 15 May 2021 (UTC)
 * Well, 94seulgi started this edit war by adding info that was already in the article.--2603:6080:6C04:C700:900F:572:7EFF:875F (talk) 17:04, 15 May 2021 (UTC)


 * I understand, but you should not violate WP:3RR no matter the case. I have reverted to the latest stable version, I have also placed warnings on hoping that he/she will come to discuss. SunDawn (talk) 17:09, 15 May 2021 (UTC)
 * Ok, and 83.26.157.157 is locked for sock puppetry.--2603:6080:6C04:C700:900F:572:7EFF:875F (talk) 17:09, 15 May 2021 (UTC)
 * Hi folks, I'm the first person who reverted 's edits to Compiler, and I did leave a note on their talk page explaining that the material which they added was already in the article. It looks to me as if they are repeatedly adding more or less the same thing without noticing the messages (admittedly when I was a new editor it took me a while to figure out how talk pages worked). I just hope that  joins the discussion here and explains why they feel the need to put duplicate stuff in the article. Murray Langton (talk) 19:03, 15 May 2021 (UTC)


 * I have left a similar message on User talk:Dbtjdgns132. From their editing pattern (small sample) it looks as if this may a sock-puppet. Murray Langton (talk) 13:34, 16 May 2021 (UTC)

Middle "END"?
Trivial observation by a person who made extensive use of FORTRAN some 50 years ago but not since (nor any other compiler or such tool): Under "Compiler Design" one diagram and associated text talks about "Front End, Middle End and Back End". I don't know the terminology of the field, but "Middle End" seems contradictory. Casey (talk) 15:17, 1 January 2022 (UTC)
 * It does, but that is the terminology. Users of compilers likely don't even need to know that, but people who work on them do. There are two parts of compilers that can, mostly, be done without connection to the rest. Those got named front end (the part that first processes input characters) and back end (that generates instructions in the target langauage). The rest then gets named middle end. Gah4 (talk) 17:36, 1 January 2022 (UTC)
 * Discussion on the comp.compilers newsgroup finds this one as an early reference. It is normally the place where optimization is done, so more important as optimization has increased in importance. Gah4 (talk) 22:12, 1 January 2022 (UTC)
 * Discussion on the comp.compilers newsgroup finds this one as an early reference. It is normally the place where optimization is done, so more important as optimization has increased in importance. Gah4 (talk) 22:12, 1 January 2022 (UTC)
 * Discussion on the comp.compilers newsgroup finds this one as an early reference. It is normally the place where optimization is done, so more important as optimization has increased in importance. Gah4 (talk) 22:12, 1 January 2022 (UTC)

History section need the motivation for using a compiler versus machine/assembly language
One of the major reasons driving for compilers in the 1950s versus assembly languages was that the IBM 704 implemented floating point operations in hardware instead of software routines. It sped up floating point calculations by a factor of 10 and switched the execution time of a program from nearly all being floating point computation routines to the rest of the program. And by extension, programmer productivity became a blocking factor.

From: Book: A HISTORY OF COMPUTING IN THE TWENTIETH CENTURY -JOHN BACKUS Chapter: Programming in America in the 1950s-Some Personal Impressions Section 7. The Origins of FORTRAN Page 130-131

"FORTRAN did not really grow out of some brainstorm about the beauty of programming in mathematical notation; instead it began with the recognition of a basic problem of economics: programming and debugging costs already exceeded the cost of running a program, and as computers became faster and cheaper this imbalance would become more and more intolerable. 

This prosaic economic insight, plus experience with the drudgery of coding, plus an unusually lazy nature led to my continuing interest in making programming easier. This interest led directly to work on Speedcoding for the 701 and to efforts to have floating point as well as indexing built into the 704.

The viability of most compilers and interpreters prior to FORTRAN had rested on the fact that most source operations were not machine operations. Thus even large inefficiencies in compiling or interpreting looping and testing operations and in computing addresses were masked by the fact that '''most operating time was spent in floating-point subroutines. '''

But the advent of the 704 with built-in floating-point and indexing radically altered the situation.

The 704 presented a double challenge to those who wanted to simplify programming; first it removed the raison d'etre of earlier systems by providing in hardware the operations they existed to provide, and second, it increased the problem of generating efficient programs by an order of magnitude by speeding up floating-point operations by a factor of ten and thereby leaving inefficiencies nowhere to hide.

So what could be done now to ease the programmer's job? Once asked, the answer to this question had to be: Let him use mathematical notation. But behind that answer (in the new 704 environment) there was the really new and hard question: '''Can a machine translate a sufficiently rich mathematical language into a sufficiently economical machine program to make the whole affair feasible? "''' 107.197.56.204 (talk) 16:44, 9 November 2022 (UTC)


 * Another major (or the main) reason - less time needed for creating a working program and obtaining the desired results from running the program: Manual vs compiler A-0, Univac: Hopper. G. M. "Compiling routines". Computers and Automation 2, No. 4, 1953 May. 1-5 MarMi wiki (talk) 13:56, 28 June 2023 (UTC)

Early compilers (1954)
BIOR, NYU Compiler System

AUTOMATIC CODING FOR DIGITAL COMPUTERS, p. 22

Business Input-Output Rerun (BIOR), , (03). MarMi wiki (talk) 11:07, 12 July 2023 (UTC)

Wiki Education assignment: Linguistics in the Digital Age
— Assignment last updated by Cakelover44 (talk) 03:36, 19 February 2024 (UTC)