Basically F(C) = R such that eval_C(C) = eval_R(R) where = means something like "discernible effects".
Wouldn't an optimization pass be a transpiler then?
It’s like saying cheese burger instead of burger - it’s a little more info. It’s not saying that it’s not a burger as well, or that the techniques involved aren’t broadly the same.
Haven't seen that terminology applied to individual passes.
All transpilers are compilers.
C2Rust is a transpiler and a compiler.
Not all compilers are transpilers.
Graal for example is a compiler but not a transpiler.
Just like all cheese burgers are burgers but not all burgers are cheese burgers. Nobody questions the term ‘cheese burger’ because we already have the word ‘burger’.
This term seems completely useless to me.
High to high translation. Limited lowering.
> Who decides on this layering of which languages are higher level or lower level?
You know it when you see it.
Who decides what makes a book a 'horror book'? There's no authority on that either. You know it when you see it.
> C2Rust doesn't call itself a transpiler, it calls itself a translator.
Yes a translator - a translating compiler - a transpiler.
> This term seems completely useless to me.
Not sure why the term seems to wind people up so much - it just add a little extra info.