Talk:Compiler/Archive 3

compilers and interpreters as translators
Somebody please make clear the difference between the two? —Preceding unsigned comment added by Sinedlebo (talk • contribs) 19:38, 10 May 2010 (UTC)

On Flow
Based on the request above, here is am brief intro to flow. First, let me say that I will just give examples here, instead of editing the article because Wikipedia policies do not encourage me to fix the article overall, not knowing how long the edits will survive. I tried to correct the errors before, but some were changed and were made incorrect again and I can not be bothered to re-correct them. Now for fun, let me give some examples about simple translations that give some ideas.

Assume you have an old program in FORTRAN (yes, that language) and want to make a similar program in C (programming language) to use now. You can "translate" FORTRAN to C in a simple way, by just changing syntax of the For-loops, etc. They are both assignment-based languages so there is no big deal. And whenever FORTRAN has an array you will make an array in C, so data structures map accordingly.

Now assume you have a set of wires and Christmas lights that represent the flow of your FORTRAN programs and another set that represent the C program. Give each light a name, say A, B, C D and just use a few of them. Then for any given input X, there is a sequence in which teh lights will flash, e.g. ABBBCAADEE for one case and ACCCAAADEEA for another but the sequences will be the same. So far, very simple. This is a simple translation and the sequence of flashes is in effect like the DNA sequence of the flowchart "with respect to" that input. The set of all such sequences with respect to all inputs is in effect a representation of your program. But note that the FORTRAN may still need to be "compiled" itself before it can run.

Now to make things interesting, try to translate a C program to FORTRAN the same way. But given that FORTRAN has no recursion and no pointers, the situation is not as simple. You will need some mechanism to handle recursion in the FORTRAN code and manage to represent pointers as arrays etc. The AABBCADDFEE type mapping is no longer that simple. And here comes the issue of "Formal semantics", but that is another story. Now, as you keep executing the FORTRAN code after it has been compiled itself, you no longer have any idea what the C code looked like. But if you want a simple interpreter for FORTRAN in C, you coul din effect just read the FORTRAN one line at a time and execute teh equivalent C code.

Now with apologies to the iPhone generation, let us talk about APL (programming language) and Common Lisp programs that use mapcar. As they say, anything is one line of PAL, so any simple flow mapping from APL to FORTRAN will have serious challenges. And you guys can guuess the flow representation of mapcars on nested lists etc. And if you want really interesting, think of the flow in OPS5 and try translating that into FORTRAN - remember that the order of statements in OPS can change without changing program behavor!

So if you think of these issues, and lights flashing as sequences, you get the idea. Now think of a set of byte code generated from Java or Smalltalk, etc. While you can have a program that interprets those bytes codes, the translation from the higher level to byte codes is not teh simple sequence type of light flashes. Anyway, that is enough for now. Cheers. History2007 (talk) 13:02, 14 June 2010 (UTC)


 * This is an encyclopaedia, not a class. I'm sure it is wonderful to see the dawning light of comprehension as they figure it out and have their theories knocked down and try again and so get an inner knowledge - but that's not what Wikipedia is about. What should be here is straightforward statements backed up by citations. Dmcq (talk) 10:34, 15 June 2010 (UTC)


 * I was trying to do you guys a favor by clarifying the concepts for you - that was why I typed on the talk page, not the article. Now, that will stop. I typed that because without it you guys do not seem to be able to follow the logic of the topic, but insist on debating it, like the totally incorrect statements you and Rursus made above. And correct statements can be change or deleted by students who do not grasp the concepts: it is a problem with Wkipedia policy really. Let us do this. I will no watch or edit this page any more, ever again. Since you are the self-appointed expert here, go and take a few classes, then fix the page. You can not just fix it by looking up on line references. That is why universities are there: at some point topic are too complicated for the average person without the technical background. And believe me, this is NOT a complicated issue: most undergraduates should know this. But anyway, that is the last I will type here. History2007 (talk) 12:42, 15 June 2010 (UTC)


 * Somebody else might be able to find something there. The above editor has actually produced a number of good articles which is why I bothered to talk to them in the first place instead of just dismissing them as bullshitting. Dmcq (talk) 13:02, 15 June 2010 (UTC)

Compiler Hinting
I thought this article would mention compiler hinting, but I didn't find it here. Should it? Where would I find this information? 192.91.172.36 (talk) 20:21, 7 October 2010 (UTC)

compiler nedir ?
compiler kısaca herhenagi bir programlama diliyle yazılmış olan verileri bilgisayarın anlıyacağı hale çeviren programdır. 1950 lerde grace hopper derleyici programı yazmıştır. Kendisine makina diliyle aramızdaki tercümanda diyebiliriz.Günümüzde programlamada  cok önemli bir  yeri  vardır. — Preceding unsigned comment added by Fatih80061 (talk • contribs) 22:39, 22 March 2011 (UTC)


 * Arfle barfle gloop? This is the English Wikipedia not the Turkish one. Dmcq (talk) 23:46, 22 March 2011 (UTC)

Static and dynamic linking
There is no information on Dynamic and static library linking, as well as software bundles creation.


 * Follow the link to Linker (computing). The easiest way to find things is to search for them using te search box on the top right or using a general search engine like google. Dmcq (talk) 13:20, 21 August 2011 (UTC)

Redirect page title typo?
"Compiled sofware" redirects here. Should this be "Compiled software"? Annoyamouse (talk) 04:43, 28 October 2011 (UTC)


 * Sofware is definitely wrong and I wouldn't have either. Compiled software doesn't sound like something a person would look up to me. Dmcq (talk) 08:00, 28 October 2011 (UTC)

CL?

 * Some language specifications spell out that implementations must include a compilation facility; for example, Common Lisp. However, there is nothing inherent in the definition of Common Lisp that stops it from being interpreted.

I'm not sure what this means. There is a function called COMPILE in Common Lisp but it basically is only required to expand macros. Any C compiler is required to do that, too, no? — Preceding unsigned comment added by 216.163.72.5 (talk) 19:30, 5 January 2012 (UTC)

IL vs IR
I changed some occurances of IL generation as a compiler phase to "intermediate representation", since that is more correct. The intermediate representation from which code is generated doesn't have to be a language, even in the broadest sense of the word. And more important, it often isn't. I kept IL as an example of an IR though, and also mentioned compile graphs and trees.

Maybe I didn't get all occurances though.


 * Sounds like a good change. Please don't forget to sign and date your posts with '~' ! CurryMi40 (talk) 19:49, 27 November 2014 (UTC)

incorrect "cross compiler" comment
In the introduction section, the phrase "Compilers also exist which translate from one high level language to another (cross compilers), or[...]" is highly inaccurate. "Cross compiler" refers to something very different, as described in the immediately following section. Having worked in the industry for many years, I've heard lots of names for a high-level-to-high-level translator, but cross compiler was never one of them. I've deleted the parenthetical comment.

That still is not quite right. That would put JAVA in the cross-compiler category. I have never head anyone call JAVA a cross compiler. True that it is. But it's output runs on many machines probably most likely including the one it was compiled on. I have written many code generators for cross compilers. There is really nothing special about a cross compiler other than the code produced. And in many cases the same compiler could produce code for the machine it was running on. The target machine was an option at command lime. See Compiler output: "The output of a compiler that produces code for a virtual machine (VM) may or may not be executed on the same platform as the compiler that produced it. For this reason such compilers are not usually classified as native or cross compilers." The first description needs improvement or deletion, --Steamerandy (talk) 10:22, 15 September 2014 (UTC)
 * Note that it is called Java not JAVA. Java does not produce a high level language. Most people do not look at the output of Java. A cross-compiler produces output that people typically use. Java is not a cross-compiler. — Preceding unsigned comment added by Sam Tomato (talk • contribs) 18:52, 11 January 2015 (UTC)

Possible grammatical glitch
In section Front end (item 1, line reconstruction), this sentence seems odd to me (emphasis added): ''« Atlas Autocode (…) are examples of stropped languages which compilers would have a Line Reconstruction phase. » Shouldn’t it be something like “whose compilers would (…)” or “for which compilers would (…)”''? With apologies if it seems obvious one way or the other! — Wlgrin 22:20, 8 January 2012 (UTC)

Many people say "which" instead of "that". I am not sure what would be appropriate here but I know that the word "which" is often used too often. Perhaps in that context it could be "of which" instead of "which". — Preceding unsigned comment added by Sam Tomato (talk • contribs) 18:59, 11 January 2015 (UTC)

What bytecode and JIT has to do with Interpretation vs. Compilation?
Article says: "Modern trends toward just-in-time compilation and bytecode interpretation at times blur the traditional categorizations of compilers and interpreters." JIT compiles bytecode into machine language. Bytecode was not intended for compilation (Sun have designed the bytecode as a machine language in mind). It was not intended for translation at all. It is result of compilation. Whether you interpret, compile or directly execute the bytecode, it does not matter at all. The only thing that we were always sure about was the fact that bytecode is produced from java source as result of compilation. For this reason also, the status of Java as compiled language is not debatable. So, which blurring are you talking about? --Javalenok (talk) 20:42, 29 January 2012 (UTC)
 * The point I think is that things like JIT compilation and byte code blur the traditional distinctions between compiled and interpreted code. With JIT and bytecode you can get some of the advantages of both such as strong typing (typically with compiled languages) and automatic memory allocation and garbage collection (typically with interpreted languages). It makes perfect sense to me and I've heard the people who designed Java say that was one of their design goals. --MadScientistX11 (talk) 04:57, 29 December 2014 (UTC)
 * Add to the mix the intermediate language of the Common Language Runtime (Microsoft .Net). Both Java Bytecode and the MSIL are said to do a JIT compilation. The use of the word compilation is quite different from the traditional use. In my opinion at least it should not be called compilation. In the past software that took a language in and then acted upon it was called a translator. Software that acted upon some intermediate code was called an interpreter. The word compiler is now being used to refer to the process of acting upon (executing) an intermediate code, it is blurring the definition of what a compiler is. Sam Tomato (talk) 19:11, 11 January 2015 (UTC)

Vague comments about "first" in lede
The lede combines comments about the first high-level language and first computer which are (a) unsourced and (b) not reflect in the body of the topic. The apparent intent of the edit was to introduce Plankalkül as the first high-level language and leave the implication that this led to the first compilers. As noted in the corresponding topic, Plankalkül was neglected for 45 years before a compiler was finally generated for it. The Plankalkül topic does not contain any information which would lead to a plausible argument that it had any effect on compiler development during the 1950s. The edit provides less information about the first computer versus the ones which were the basis for the first compilers (and in turn, the first implemented high-level languages) TEDickey (talk) 01:45, 11 February 2015 (UTC)


 * Hello! I agree that  made by  should be pretty much reverted, while information about Plankalkül should be briefly incorporated into the  section.  In other words, Plankalkül totally deserves to be mentioned there, but it was just an idea/proposal that actually materialized in different forms about ten years later. &mdash; Dsimic (talk | contribs) 06:41, 14 February 2015 (UTC)


 * The previous text was full of false claims. If you revert my edit, you would reintroduce those false claims and I thus of course had to revert your edit. As mentioned, the idea of a high level programming language is as old as the first computer and the compiler is just an implementation of this idea. If you don't like my text, you should be able to give good reason why and propose a better wording instead of proposing to go back to false claims. Schily (talk) 13:33, 15 February 2015 (UTC)


 * Well, you've just confirmed that your version is actually to be corrected: it isn't about the concept, but about real-life implementations. Plankalkül was just a concept, while implementations came about ten years later; it's pretty much the same as the concept of time machine, for example, which is widely described but has no known implementations.  Anyway, here's the wording I propose:
 * Software for early computers was primarily written in assembly language, and implementations of higher-level programming languages were not available until the benefits of being able to reuse software on different kinds of CPUs started to become significantly greater than the costs of writing a compiler. At the same time, although the concept of a high-level language existed nearly since the first computer, the limited memory capacity of early computers led to substantial technical challenges when the first compilers were designed.
 * Although the first an early high-level programming language, called Plankalkül, was proposed by Konrad Zuse in 1943, actual implementations of machine-independent programming languages were first developed toward the end of the 1950s in form of several experimental compilers. The first compiler was written by Grace Hopper, in 1952, for the...
 * Looking good? &mdash; Dsimic (talk | contribs) 19:30, 15 February 2015 (UTC)


 * I did not confirm that my text needs to be worked on, I however cornfirmed that the previous text that claimed compilers have not been invented in early days was wrong.
 * I am not happy with your text proposal as it does not reflect the situation in 1943 when Konrad Zuse proposed Plankalkül. Note that Konrad Zuse was a construction engineer and he invented both the computer and Plancalkül to make the work of a construction engineer easier. But in 1943, there was no money for this goal. Money was available only for the Gleitbombe HS 293 (the first cruise missile with TV camera and target control - developed to the south of Berlin (Ludwigsfelde)), FLAK control and airfoil calculation. It is obvious that until 1945, there was no way to implement a compiler by Zuse and in the first years after WW II, things have not been better. Grace hopper was in a completely different situation and you create a wrong impression if you do not explain why Plankalkül could not be implemented in 1943. — Preceding unsigned comment added by Schily (talk • contribs) 21:28, 15 February 2015‎ (UTC)


 * This is nonsense. Why should we mention some missiles in a compiler-related article? &mdash; Dsimic (talk | contribs) 21:38, 15 February 2015 (UTC)


 * Ignoring the facts on how the first programmable computer was funded is history forgery. Schily (talk) 21:44, 15 February 2015 (UTC)


 * Sorry, but that's still only more nonsense. In a few words, this article is not the place for describing such historical aspects. &mdash; Dsimic (talk | contribs) 21:47, 15 February 2015 (UTC)


 * Then I recommend to stay with my historically correct text, unless you like to introduce nonsense... Schily (talk) 21:55, 15 February 2015 (UTC)


 * I still disagree. However, as this obviously isn't leading us toward a mutually acceptable wording, let's wait for more input from other editors. &mdash; Dsimic (talk | contribs) 22:04, 15 February 2015 (UTC)


 * If you like to continue here, you could e.g. describe what in special you don't like with the current text. As a compiler is no more than the implementation of a high level programming language, Plankalkül of course is important for a compiler article. I recommend you to read the German WP article that is much better than the english one. As I am sure you cannot give a reason why the current text should not be OK, I propose to leave it as it is. Schily (talk) 10:37, 16 February 2015 (UTC)


 * The version I've proposed above ties it all much better together. In other words, my version clearly describes the relation between early high-level lanugages and their actual implementations that were made available later; Plankalkül is still mentioned, of course.  Would you mind re-reading my proposal, available above? &mdash; Dsimic (talk | contribs) 01:22, 17 February 2015 (UTC)


 * I believe we could easier come to an agreement if you did explain what you don't like with the current text. Schily (talk) 11:07, 19 February 2015 (UTC)


 * Obviously, current version doesn't tie it all together too well. As already explained, current version doesn't "clearly describe the relation between early high-level lanugages and their actual implementations that were made available later".  Why do I need to repeat what I already wrote a few lines above? &mdash; Dsimic (talk | contribs) 21:31, 19 February 2015 (UTC)

Any further thoughts on this, please? , ? &mdash; Dsimic (talk | contribs) 13:24, 7 March 2015 (UTC)


 * I believe I already expressed agreement with your proposed changes TEDickey (talk) 14:05, 7 March 2015 (UTC)


 * Thanks. Let's see whether  provides additional comments, otherwise I'd say that we should implement the proposed changes. &mdash; Dsimic (talk | contribs) 07:13, 12 March 2015 (UTC)


 * I asked you for an explanation what exactly you don't like in my current text. If you give this explanation, I am able to reply. Schily (talk) 09:57, 12 March 2015 (UTC)


 * Please don't get me wrong, Schily, but you sound abrasive and somewhat uncooperative. Come on, I've explained that already at least twice, please have a look above. &mdash; Dsimic (talk | contribs) 10:22, 12 March 2015 (UTC)


 * I am not aware of such an explanation, so please point me to that text or repeat it. Schily (talk) 10:50, 12 March 2015 (UTC)


 * See here and here. &mdash; Dsimic (talk | contribs) 11:17, 12 March 2015 (UTC)


 * The first one does not explain things but just points to a new text. The second one sounds a bit vague. This is why I asked for an explanation. Schily (talk) 12:25, 12 March 2015 (UTC)


 * Sorry, but if you're unable to understand that those two posts are explanations, then I really don't know how to make the whole thing more understandable to you. &mdash; Dsimic (talk | contribs) 12:39, 12 March 2015 (UTC)


 * Please try it with facts instead of using feelings. The current text explains that the idea of a compiler is much older than the first implementation. What is your problem with this description? Schily (talk) 14:05, 12 March 2015 (UTC)


 * Dude, I don't know how to tell you that, but you are clearly not open to a constructive discussion. This is leading us nowhere, as you have that exact terse wording "welded" in your mind, with no intentions to accept a possibility that it can be made better. &mdash; Dsimic (talk | contribs) 14:51, 12 March 2015 (UTC)


 * Sorry, but the fact that you don't explain your concern is the problem. Send a fact based explanation instead of vague text and we will be able to go somewhere. As long as you don't send the explanation I asked you to send, you are blocking the discussion. I cannot understand your concern as long as you just send vague feelings and forget to send what you really have in mind.Schily (talk) 10:32, 13 March 2015 (UTC)


 * Unfortunately, the problem is that you don't seem (or want) to understand what I write. &mdash; Dsimic (talk | contribs) 12:08, 13 March 2015 (UTC)


 * The problem is that you may believe that you expressed some feelings but actually you did not. This is why I asked you to send a fact oriented explanation why you like to change things. Do this and we can advance. Schily (talk) 13:16, 16 March 2015 (UTC)


 * I'm no longer wasting my time on this pointless debate in which the other party ignores already expressed arguments. Let's see if anybody else cares. &mdash; Dsimic (talk | contribs) 05:34, 18 March 2015 (UTC)


 * I am happy to continue if you send arguments... Schily (talk) 14:03, 19 March 2015 (UTC)


 * Actually, the Plankalkül topic qualifies that by stating "non-Von Neumann" (and the corresponding topic is poorly sourced) but does not give a reliable source for the "first". From the sources on that topic, one cannot establish more than the "early" which a previous comment noted. TEDickey (talk) 20:00, 15 February 2015 (UTC)


 * The modified proposal looks fine TEDickey (talk) 20:25, 15 February 2015 (UTC)


 * Thanks. Comments stating "first" or "notable" always require a source from a recognized knowledgeable authority in the given field.  In this case, that would be some variety of published historian. TEDickey (talk) 13:06, 14 February 2015 (UTC)


 * I'd suggest that we wait a few days for a response from Schily before doing anything, just so we try to establish a consensus first and avoid reverts and whatnot. Hope you agree. &mdash; Dsimic (talk | contribs) 22:19, 14 February 2015 (UTC)


 * Certainly. TEDickey (talk) 22:35, 14 February 2015 (UTC)

External links modified
Hello fellow Wikipedians,

I have just added archive links to 1 one external link on Compiler. Please take a moment to review my edit. If necessary, add after the link to keep me from modifying it. Alternatively, you can add to keep me off the page altogether. I made the following changes:
 * Added archive http://web.archive.org/web/20141010102940/http://www.compdev.net/ to http://www.compdev.net

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ).

Cheers.—cyberbot II  Talk to my owner :Online 00:32, 7 March 2016 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 1 one external link on Compiler. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20150103161301/http://www.informatik.uni-trier.de/~ley/db/books/compiler/index.html to http://www.informatik.uni-trier.de/~ley/db/books/compiler/index.html

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ).

Cheers.— InternetArchiveBot  (Report bug) 17:46, 11 September 2016 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 1 one external link on Compiler. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20120220002430/http://www.interesting-people.org/archives/interesting-people/199706/msg00011.html to http://www.interesting-people.org/archives/interesting-people/199706/msg00011.html

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ).

Cheers.— InternetArchiveBot  (Report bug) 05:25, 29 November 2016 (UTC)

Dead Links
Out of the few links in this article many are not working. The 5th and 6th link for example; the 5th link takes you to a digital library that you need to a subscription to, and the 6th link takes you to a short preview of an academic journal. These links are vital and renewing them could enhances the credentials of the article. AdamaS (talk) 03:10, 28 January 2017 (UTC)Adama Sanoh