(no title)
greglindahl | 5 years ago
Normal CS jargon has "assemblers" and "linkers", both of which might appear to be compilers according to this dictionary definition.
CS history also includes things like TeX, which formats text for a variety of outputs, and was rarely called a compiler.
Web browsers often include a JIT compiler for Javascript, but their text formatting system isn't usually called a compiler.
jholman|5 years ago
I disagree with your assessment of "normal CS jargon". I'm wondering if you mean "normal jargon in the C/C++ community".
In my experience with compiler textbooks and computer science professors who specialize in compilers, compilers are any formal-language-to-formal-language translator. Yes, sometimes sub-types of compilers have specific names, but they are all compilers.
Is there one word for the subject material of the dragon book? I think there is, and I think that word is "compiler". Including source-to-source translators, including assemblers, including preprocessors, including linkers.
greglindahl|5 years ago
The project in which I worked on a C++-to-C translator didn't call it a compiler, it called it a source-to-source translator. It was a CS project in a CS department funded by the NSF. I have read the Dragon Book, and would be surprised if the authors would consider an interpreter, assembler, or a linker to be a compiler.
So yeah. I don't expect you to agree with my opinion, but I do appreciate it that you're trying to avoid being confrontational jerk.
jesselawson|5 years ago
This is my first time sharing one of my tutorials on HN so I am still feeling out where I will slip and where I can slide.