What are the criteria for including a language in gcc?












0















According to man gcc, gcc supports the following languages, which you can choose from with the -x flag:



c  c-header  cpp-output
c++ c++-header c++-cpp-output
objective-c objective-c-header objective-c-cpp-output
objective-c++ objective-c++-header objective-c++-cpp-output
assembler assembler-with-cpp
ada
f77 f77-cpp-input f95 f95-cpp-input
go
java


What is the criteria for putting a language in gcc? Obviously languages like C and C++ are going to be in gcc, but I was surprised at go and java.



Additionally, the gcc documentation at gnu.org says: "The language-independent component of GCC includes the majority of the optimizers, as well as the “back ends” that generate machine code for various processors." My knowledge on compilers is basic at best, but does this mean that gcc parses and lexes each language into some kind of universal format and then produces some kind of binary from there? If this is the case, would writing a gcc optimizer that is language-independent work for any of those languages, for example both C and go?










share|improve this question







New contributor




Nicholas Schmeller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • The main criterion is that some team of programmers are prepared to contribute and maintain a quality frontend for the language. There is a document on GCC internals which you might find interesting; the details are way too complicated for an SE answer.

    – rici
    2 hours ago


















0















According to man gcc, gcc supports the following languages, which you can choose from with the -x flag:



c  c-header  cpp-output
c++ c++-header c++-cpp-output
objective-c objective-c-header objective-c-cpp-output
objective-c++ objective-c++-header objective-c++-cpp-output
assembler assembler-with-cpp
ada
f77 f77-cpp-input f95 f95-cpp-input
go
java


What is the criteria for putting a language in gcc? Obviously languages like C and C++ are going to be in gcc, but I was surprised at go and java.



Additionally, the gcc documentation at gnu.org says: "The language-independent component of GCC includes the majority of the optimizers, as well as the “back ends” that generate machine code for various processors." My knowledge on compilers is basic at best, but does this mean that gcc parses and lexes each language into some kind of universal format and then produces some kind of binary from there? If this is the case, would writing a gcc optimizer that is language-independent work for any of those languages, for example both C and go?










share|improve this question







New contributor




Nicholas Schmeller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • The main criterion is that some team of programmers are prepared to contribute and maintain a quality frontend for the language. There is a document on GCC internals which you might find interesting; the details are way too complicated for an SE answer.

    – rici
    2 hours ago
















0












0








0








According to man gcc, gcc supports the following languages, which you can choose from with the -x flag:



c  c-header  cpp-output
c++ c++-header c++-cpp-output
objective-c objective-c-header objective-c-cpp-output
objective-c++ objective-c++-header objective-c++-cpp-output
assembler assembler-with-cpp
ada
f77 f77-cpp-input f95 f95-cpp-input
go
java


What is the criteria for putting a language in gcc? Obviously languages like C and C++ are going to be in gcc, but I was surprised at go and java.



Additionally, the gcc documentation at gnu.org says: "The language-independent component of GCC includes the majority of the optimizers, as well as the “back ends” that generate machine code for various processors." My knowledge on compilers is basic at best, but does this mean that gcc parses and lexes each language into some kind of universal format and then produces some kind of binary from there? If this is the case, would writing a gcc optimizer that is language-independent work for any of those languages, for example both C and go?










share|improve this question







New contributor




Nicholas Schmeller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












According to man gcc, gcc supports the following languages, which you can choose from with the -x flag:



c  c-header  cpp-output
c++ c++-header c++-cpp-output
objective-c objective-c-header objective-c-cpp-output
objective-c++ objective-c++-header objective-c++-cpp-output
assembler assembler-with-cpp
ada
f77 f77-cpp-input f95 f95-cpp-input
go
java


What is the criteria for putting a language in gcc? Obviously languages like C and C++ are going to be in gcc, but I was surprised at go and java.



Additionally, the gcc documentation at gnu.org says: "The language-independent component of GCC includes the majority of the optimizers, as well as the “back ends” that generate machine code for various processors." My knowledge on compilers is basic at best, but does this mean that gcc parses and lexes each language into some kind of universal format and then produces some kind of binary from there? If this is the case, would writing a gcc optimizer that is language-independent work for any of those languages, for example both C and go?







gcc compiler






share|improve this question







New contributor




Nicholas Schmeller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




Nicholas Schmeller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




Nicholas Schmeller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 4 hours ago









Nicholas SchmellerNicholas Schmeller

12




12




New contributor




Nicholas Schmeller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Nicholas Schmeller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Nicholas Schmeller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.













  • The main criterion is that some team of programmers are prepared to contribute and maintain a quality frontend for the language. There is a document on GCC internals which you might find interesting; the details are way too complicated for an SE answer.

    – rici
    2 hours ago





















  • The main criterion is that some team of programmers are prepared to contribute and maintain a quality frontend for the language. There is a document on GCC internals which you might find interesting; the details are way too complicated for an SE answer.

    – rici
    2 hours ago



















The main criterion is that some team of programmers are prepared to contribute and maintain a quality frontend for the language. There is a document on GCC internals which you might find interesting; the details are way too complicated for an SE answer.

– rici
2 hours ago







The main criterion is that some team of programmers are prepared to contribute and maintain a quality frontend for the language. There is a document on GCC internals which you might find interesting; the details are way too complicated for an SE answer.

– rici
2 hours ago












0






active

oldest

votes











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






Nicholas Schmeller is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f506189%2fwhat-are-the-criteria-for-including-a-language-in-gcc%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes








Nicholas Schmeller is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















Nicholas Schmeller is a new contributor. Be nice, and check out our Code of Conduct.













Nicholas Schmeller is a new contributor. Be nice, and check out our Code of Conduct.












Nicholas Schmeller is a new contributor. Be nice, and check out our Code of Conduct.
















Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f506189%2fwhat-are-the-criteria-for-including-a-language-in-gcc%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Loup dans la culture

How to solve the problem of ntp “Unable to contact time server” from KDE?

ASUS Zenbook UX433/UX333 — Configure Touchpad-embedded numpad on Linux