5 ms·
I've taught a compiler design course every other year for awhile and one of the big drawbacks is that the students don't have an intimate knowledge of machine/a
by waynecochran 12y ago
I've taught a compiler design course every other year for awhile and one of the big drawbacks is that the students don't have an intimate knowledge of machine/assembly language for any specific architecture. 20 years ago programmers understood how the underlying machine and OS worked in detail -- nowadays programmers/students are strongly insulated from these details.
Ideally I would want to teach a two semester course starting with the backend first -- the first task would be to write several significant programs in assembly language (for some clean RISC machine) and grade them on how well they managed register allocation, stack frame / heap management, page alignment, etc.. Then cover how to convert some SSA IR (e.g., LLVM) into that language.
How do you translate into a language you don't understand?
- warfangle 12y agoWhat better way to teach someone assembly, etc, than to teach them how to convert code that they understand to code that the architecture can understand?
- rayiner 12y agoAt least at GT 10 years ago, a machine architecture course (starting with logic gates, moving on to MIPS assembly, then CPU architecture) was pretty early in the CS curriculum. Seems pretty essential, is it not common?