3 ms·
I can't comment on this course specifically, but the argument for studying compilers, even if you don't end up working in that field, is that learning how progr
by zmodem 9y ago
I can't comment on this course specifically, but the argument for studying compilers, even if you don't end up working in that field, is that learning how programs are translated gives a deepter understanding of how computers are programmed. From a practical view-point, it's useful to know what a compiler can and cannot do with your program.
Niklaus Wirth puts it like this:
"It is the essence of any academic education that not only knowledge, and, in the case of an engineering
education, know-how is transmitted, but also understanding and insight. In particular, knowledge about
system surfaces alone is insufficient in computer science; what is needed is an understanding of contents.
Every academically educated computer scientist must know how a computer functions, and must
understand the ways and methods in which programs are represented and interpreted. Compilers convert
program texts into internal code. Hence they constitute the bridge between software and hardware.
Now, one may interject that knowledge about the method of translation is unnecessary for an
understanding of the relationship between source program and object code, and even much less relevant
is knowing how to actually construct a compiler. However, from my experience as a teacher, genuine
understanding of a subject is best acquired from an in-depth involvement with both concepts and details.
In this case, this involvement is nothing less than the construction of an actual compiler."
(From http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf)