That's not what I was talking about. You can certainly write a code generator in a
high level language, and most are done that way. But you can't create a code
generator unless you understand the assembly language (or, I suppose, technicallly
speaking the machine language) of the target machine. And furthermore, you have to
understand it quite deeply to create the correct machine-specific optimization. For
example, iin GCC the pipeline description is written in a high level language, and the
code generation framework uses that to make instruction scheduling decisions. But you
can't write that pipeline description unless you understand the instruction scheduling
properties of the target machine.
paul
On Jun 17, 2026, at 2:15 PM, Mike Katz via cctalk
<cctalk(a)classiccmp.org> wrote:
I'm sorry but I beg to differ with your, it is entirely possible to write the code
generator for a compiler in a high level language. Most C-compilers are written that way.
The initial after reset code may need to be written in assembler to properly setup some
registers prior to the run time system for the high level language (stack, interrupt
masks, cache initialization, etc.).
On 6/17/2026 12:55 PM, Paul Koning via cctalk wrote:
On Jun 17, 2026, at 11:55 AM, Mark Green via
cctalk <cctalk(a)classiccmp.org> wrote:
I recently reviewed a college program that had a COBOL course. It’s not quite dead in
academia.
Speaking of academia: clearly any "academic" who claims
Assembler is dead is unqualified for the job. It may be true that not very much
application code is written in assembler. But it should be obvious that competence in
assembler is absolutely necessary in order to build a compiler -- in particular, a
compiler back-end.
paul