Should we add an "assumed knowledge"/"prerequisites" section?
How about, we assume the reader is familiar with what a compiler does and its use in software development, but not on their internals. And we assume basic familiarity with computer architecture (CPU, registers, memory) and software concepts such as a arrays, stacks and heaps.
How about, we assume the reader is familiar with what a compiler does and its use in software development, but not on their internals. And we assume basic familiarity with computer architecture (CPU, registers, memory) and software concepts such as a arrays, stacks and heaps.
Yes, that seems the minimum we should be able to assume. I guess that in sections that need to go in more detail on code generation, we may have to assume more background knowledge of the general structure of a compiler. Maybe it could help (if readers/reviewers suggest it would be useful) to have a very brief appendix explaining the basics of the structure of a compiler - what is needed to not need to explain basic general compiler internals in the main text)?
I imagine that it will be easiest to highlight what needs to be explained in a glossary or appendix by having reviewers and readers highlight what they do no understand? Maybe we could write a few words in the introduction encouraging readers to create a github issue if there is content that uses terms/concepts they do not understand?