awesome-java icon indicating copy to clipboard operation
awesome-java copied to clipboard

Rename Compiler-compiler section

Open ManuInDenWolken opened this issue 3 years ago • 1 comments

Please discuss renaming the "Compiler-compiler" section to "metacompiler". A compiler is not in every case exclusive for a specific platform, while a metacompiler is. A metacompiler uses also a language, intended for this purpose; i.e. ANTLR3. Furthermore, no software listed in this section does generate compilers but only parsers as parts of compilers.

It's more accurate.

ManuInDenWolken avatar Jul 26 '22 09:07 ManuInDenWolken

@akullpp Forgot to assign the issue. Please also take a look at the bunch of new pull request.

ManuInDenWolken avatar Aug 06 '22 06:08 ManuInDenWolken

Can I have some other opinions on that?

The initial motivation (which still holds strong) was Wikipedia's compiler-compiler page. Metacomiler redirects to this and the article also contains metacompilers. So it appears that compiler-compiler is a more abstract term and might be better suited.

akullpp avatar Oct 07 '22 09:10 akullpp

I have to correct my explaination. The given tools are parser-generators, thus they do only generate parsers which are parts of compilers. The parser does process and transform the input syntactically (to an AST), but not semantically. A compiler does also semantic analysis for being able to produce an executable output. Consequently, the enumerated tools are no full-featured compilers - simply because of the lack of a capability to interprete the AST semantically.

TLDR: Compilers generate executables from code, parsers just abstract syntax trees (ASTs). Inasmuch as those tools only generate programs capable of generating ASTs, they do not generate full compilers but parsers. So, the correct term is "parser generator", not "metacompiler" and in no circumstances "compiler-compiler".

ManuInDenWolken avatar Oct 07 '22 18:10 ManuInDenWolken

With the following section from Wikipedia I'm not agreeing.

The most common type of compiler-compiler is more precisely called a parser generator. It only handles syntactic analysis.

It contradicts given definitions by trying to use the term of a parser as a subset of compilers.

ManuInDenWolken avatar Oct 07 '22 18:10 ManuInDenWolken