> Я умею читать и даже осмыслить прочитанное.Угу-угу. Цитата из man clang
>This stage translates an AST into low-level intermediate code
>(known as "LLVM IR") and ultimately to machine code.
для кого была?
> Вопрос - накой прослойка? Конпелятор нужен для максимальной производительности.
Ответ: за надом в виде оптимизации. Потому что далеко не все можно оптимизировать на уровне AST (например: лучше подходит (разновидность) той же абстрактой интерпретации). А без "прослойки" -- придется копипастить-писать часть низкоуровневой платфоромнезависимой оптимизации для каждой целевой платформы (краткая лекция введения в компиляторостроение или хотя бы https://en.wikipedia.org/wiki/LLVM#Intermediate_representation и https://en.wikipedia.org/wiki/Intermediate_representation находятся в шаговой доступности от анонима).
> А если дополнительно вкрячивается интерпретация байт-кода в платформу, то это не конпелятор.
Ну если аноним так говорит, то наверное так оно и есть. Правда, пацаны из GCC об этом почему-то не слышали:
https://gcc.gnu.org/onlinedocs/gccint/Tree-SSA.html#Tree-SSA
>GCC uses three main intermediate languages to represent the program during compilation: GENERIC, GIMPLE and RTL. GENERIC is a language-independent representation generated by each front end. It is used to serve as an interface between the parser and optimizer. GENERIC is a common representation that is able to represent programs written in all the languages supported by GCC.
>