From Wikipedia, the free encyclopedia
Jump to: navigation, search
          This article is of interest to the following WikiProjects:
WikiProject Software / Computing  (Rated C-class, Top-importance)
WikiProject icon This article is within the scope of WikiProject Software, a collaborative effort to improve the coverage of software on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 Top  This article has been rated as Top-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Computing (marked as Top-importance).
WikiProject Computer science (Rated C-class, Top-importance)
WikiProject icon This article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 Top  This article has been rated as Top-importance on the project's importance scale.

IL vs IR[edit]

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[edit]

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 (talkcontribs) 18:52, 11 January 2015 (UTC)


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

Possible grammatical glitch[edit]

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 (talkcontribs) 18:59, 11 January 2015 (UTC)

What bytecode and JIT has to do with Interpretation vs. Compilation?[edit]

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[edit]

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 this edit made by Schily should be pretty much reverted, while information about Plankalkül should be briefly incorporated into the Compiler § History 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. — 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? — 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 (talkcontribs) 21:28, 15 February 2015‎ (UTC)
This is nonsense. Why should we mention some missiles in a compiler-related article? — 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. — 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. — 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? — 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? — Dsimic (talk | contribs) 21:31, 19 February 2015 (UTC)

──────────────────────────────────────────────────────────────────────────────────────────────────── Any further thoughts on this, please? Schily, Tedickey? — 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 Schily provides additional comments, otherwise I'd say that we should implement the proposed changes. — 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. — 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. — 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. — 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. — 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. — 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. — 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. — Dsimic (talk | contribs) 22:19, 14 February 2015 (UTC)
Certainly. TEDickey (talk) 22:35, 14 February 2015 (UTC)