akullpp / awesome-java

A curated list of awesome frameworks, libraries and software for the Java programming language.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rename Compiler-compiler section

ManuInDenWolken opened this issue · comments

Please discuss renaming the "Compiler-compiler" section to "Parser generators". Each enumerated tool isn't capable of generating an entire compiler. They do generate parsers.

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

commented

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.

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".

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.