That's why I'd like to use a language that I already know instead of learning a new one while also learning new material.
Even if you can write a compiler assuming infinite memory that generates programs that also assume it, it would be a disservice to readers to ignore that for brevity. It's an important part of understanding how programs are created.
I don't follow your rationale. With C the developer manages heap memory by basically calling malloc and free.
This means that once you have the memory model set, all you need to do to roll your compiler is to implement the interface.
A language that "don't require it themselves" is a language which provides only high level constructs and dumps all the memory management logic to the compiler/runtime, from object allocation/deallocation to lifetime management.
How is that simpler to pull off by a compiler writer?
Another good idea is to write a compiler in the target language.
What did you have in mind?
What stops you from understanding the idea by reading C? It's a tried-and-true language whose K&R version fits entirely in an easy to read ~180pg book which has real world applications, unlike pseudocode.
C is fine, it's just not ideal for me to learn C which I have no use for and learn a new skill at the same time.
But you do have a need for it, because it’s the lingua franca of conversations about compilers and interpreters… as you’ve just found out with this course.
Like saying you want to work in the Vatican but you have no need for Latin.
There are many materials, compilers, and interpreters that use ocaml and haskell, for example. C isn't the only one. That's why I'd prefer pseudo code instead of C, so that I could use this book without learning a specific language only for it.
Compilers and interpreters, unless they're running on bare metal, which is very niche, talk to the operating system using something called 'system calls' to ask for resources that they can't provide themselves, like virtual memory space and IO. These system calls are documented in C.
For example I wrote a Ruby compiler in Ruby, but I still need to know about the mmap system call, which is documented in C, to allocate my memory.
https://github.com/chrisseaton/rhizome/blob/main/doc/memory....
https://man7.org/linux/man-pages/man2/mmap.2.html
https://github.com/chrisseaton/rhizome/blob/main/lib/rhizome...
Sure, but the compiler will still have to generate machine code for those.
Maybe... MAYBE you don't have to read this book.
Where did I say I have to read it or that the author should learn another language? Nowhere. I said I wish it wasn't using C so that I could read it more easily.