Jump to content

Talk:Compiler/Archive 4

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
Archive 1Archive 2Archive 3Archive 4

Restructure: Compiler Article

Comments: A. Introduction could focus and limit topic coverage. Example: The class of specialized programs that transform a Computer Language program into executable Machine Language Programs fall into two major categories: Interpreters and Compilers. ... B. Table of Contents 1. Compilation 1.1 Classic Model 1.1.1 Front End 1.1.2 Optimizer 1.1.3 Back End 1.2 Other Models 2. Dependencies 2.1 Language Architectures 2.2 Standards 2.3 Operating Systems 2.4 Target Architectures 3. Other Compiler Types 4. History C. See Also (add links to topics such as Linker, Intermediate Representation, DIANA, a Descriptive Intermediate Attributed Notation for Ada ...) D. Reference updates to include some of the Compiler Books and papers e.g. "Crafting a Compiler" by Fischer/LeBlanc, "The Architecture of Open Source Applications" Chapter 11 by Chris Lattner

E. About Models General model of compilation can be viewed as the front end which that analyzes the input program; the middle section that optimizes the analyzed program; the back end that produces the code for the target architecture. (similar diagram in current article 'Three phases compiler structure' These phases are supported by constructs such as -

        Language Architecture formed by the formalized syntax and semantics.    
        Libraries
        Target ISA - Instruction Set Architecture

There are other useful views such as the LLVM project. Also Other Compiler types can cover things like programmable arrays, graphic, specification and so on P.S. Interpreter Article could benefit from some additional details Nodorf (talk) 20:29, 13 July 2017 (UTC)nodorf

Hello fellow Wikipedians,

I have just modified 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:

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}} (last update: 5 June 2024).

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—InternetArchiveBot (Report bug) 11:39, 22 December 2017 (UTC)

interpreted language

There are languages that allow dynamic redefinition, such that compilation is not possible. TeX, for example, allows dynamic changes to character codes, which affects tokenizing. In Mathematica, it is possible to write self modifying source code. That is, the back end can modify the input source when using the GUI. Gah4 (talk) 18:18, 27 May 2018 (UTC)

Correct focus in compliance of the page's title expectations.

The page is called Compiler but the whole focus of it is about the programming languages and not on the compilers, in fact you learn barely anything (mostly basic stuff) about the compilers themselves, most of them are even hidden inside the programming language sentences, implied, but completely silent about the compilers. I wonder if anyone would agree this should be addressed and fixed, I lack the knowledge to do so, which is why I came to the page on the first place.

Thank you very much, i hope this isn't uncalled for. — Preceding unsigned comment added by 190.39.192.31 (talk) 14:17, 2 May 2018 (UTC)

You can't really separate the idea of a compiler from the idea of a language needing compiling. Also, many details will be too esoteric for an article. Still, it might be that some things could be done better. Gah4 (talk) 19:35, 9 October 2018 (UTC)

Section with verifiability issues moved from article

The following section was moved from the article because I couldn't find sufficient information to verify it fully.

Compilers in education

Compiler construction and compiler optimization are taught at universities and schools as part of a computer science curriculum.[1][non-primary source needed] Such courses are usually supplemented with the implementation of a compiler for an educational programming language. A well-documented example is Niklaus Wirth's PL/0 compiler, which Wirth used to teach compiler construction in the 1970s. In spite of its simplicity, the PL/0 compiler introduced several influential concepts to the field, including uses of:

  1. akin to the 1971 paper by Wirth, program development by stepwise refinement;
  2. a recursive descent parser;
  3. an extended Backus–Naur form (EBNF) to specify the syntax of a language;
  4. a code generator producing portable P-code; and
  5. tombstone diagrams in the formal description of the bootstrapping problem.

References

  1. ^ Chakraborty, P.; Saxena, P. C.; Katti, C. P.; Pahwa, G.; Taneja, S. (2011). "A New Practicum in Compiler Construction". Computer Applications in Engineering Education. 22 (3, 25 July). Archived from the original on 16 November 2016. Retrieved 28 February 2017. {{cite journal}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help); Unknown parameter |subscription= ignored (|url-access= suggested) (help)[non-primary source needed]

Feel free to reinstate it if sources are found. Enterprisey (talk!) 21:42, 10 September 2018 (UTC)

If you want to find out if it is taught in universities, a look through the catalog of two of them (since it is plural) should be enough. Those catalogs could even be references. Also, the existence of textbooks for such courses is a strong hint that courses exist, and could also be references. Gah4 (talk) 19:39, 9 October 2018 (UTC)

highlighting them in the source code

There is a dubious/discuss for highlighting them in the source code. At first I also thought it was dubious, the way it sounds, but compilers from the 1960's and 1970's would normally (optionally) print out a source listing, with error messages at the appropriate point. Then usually with an indication of where in the line the error was, as well as it was known, sometimes with an arrow pointing at the position. I would consider that highlighting. Some GUI compilers might actually highlight with color or font, or otherwise make obvious in the source. Some now just indicate the line number, and usually where in the line, which is a less obvious definition of highlight. Gah4 (talk) 18:09, 27 May 2018 (UTC)

I can see both sides of this. I'm sure it's true that some compilers out there do some kind of highlighting of the source code. However, I would expect an encyclopedia article describing the different stages of the compiler to describe what they fundamentally and generally do, rather than what all the possibilities are. The next sentence, which notes that the front-end performs lexical, syntactic, and semantic analysis is much more true to the spirit of what this component does, and that's the thing to focus on. Unless there's further discussion of this in the near future I'll edit this out. Rm9820 (talk) 14:28, 3 December 2018 (UTC)

translators

There are computer language translators that are not compilers. Specifically, that don't fully parse the source language. When given invalid input, they tend to produce invalid output, possibly unrecognizable, without any error messages. This used to be commonly done with macro processors, that would read a file of macros and apply them to the input. One language that does still work this was is TeX. Gah4 (talk) 23:54, 5 April 2019 (UTC)

A macro processor is clearly a type of compiler; the input is written in macro language, the output is a different language. GliderMaven (talk) 00:33, 6 April 2019 (UTC)
I suppose so, but I tend to make a distinction between ones that actually parse the input, vs. simple, or slightly less than simple, string substitution. But yes, there are macro processors that do complex parsing. Otherwise, you could call sed a compiler, which most people don't. Otherwise, there are macro-processors that can fully parse the input. Gah4 (talk) 07:41, 6 April 2019 (UTC)
Sed, in and of itself, doesn't specifically perform a translation, although some sed commands might be considered to be extremely simple compilers. GliderMaven (talk) 15:58, 6 April 2019 (UTC)

Primary Sources??

I see this article tagged as "depending too much on primary sources". What on earth would be "primary sources" for such a broad term as "compiler"? I'd guess the person who tagged the article didn't have an understanding what "primary source" means. As I don't really see an explanation why the article was tagged, I'd say the tag should be removed. Comments anyone? --Arny (talk) 15:49, 4 May 2019 (UTC)

The only way to answer your question would be to look at the history of the topic and see if the problem that was noticed when the tag was placed was resolved, rather than making snide comments about other editors. TEDickey (talk) 16:03, 4 May 2019 (UTC)
The tag was over two years ago. There were no additions to the talk page for months after, and especially not near, the time when the tag was added. Changes in the mean time may, or may not, have fixed the problems noted. Besides, I thought Wikipedia wanted secondary sources! Gah4 (talk) 23:59, 4 May 2019 (UTC)

A Commons file used on this page has been nominated for deletion

The following Wikimedia Commons file used on this page has been nominated for deletion:

Participate in the deletion discussion at the nomination page. —Community Tech bot (talk) 23:38, 26 July 2019 (UTC)