&gt; In other words, this is a compiler.<p>Its not a compiler it a pre-processor.<p>People look at C in isolation but don&#x27;t realise it was designed to be part of the full Unix system that included Sed, Awk, M4, Lex, Yacc, Sh and all the other tools.<p>Writing custom C abstractions with Awk is fairly trivial and you end up with efficient C code that can be further processed or tuned. Thats what tools like Awk are there for.<p>The compiler itself is built on the same principles doing successive transformations on source, IR, assembly etc. There is really no rigid boundary.<p>If you want C with custom abstractions a custom dialect that compiles to C makes perfect sense. That use case was taken into account in its design.