Join Nostr
2026-01-02 19:37:23 UTC

amen zwa, esq. on Nostr: #EE undergrads interested in #CPU and #compiler designs may wish to explore the ...

#EE undergrads interested in #CPU and #compiler designs may wish to explore the following:

• Pick a classic 8-bit CPU architecture, 8008, 8080, Z80, 6800, or 6502, and learn the instruction set architecture and the assembly language for that CPU
• Implement, exclusively in C, a minimally-functional assembler for that instruction set
• Adapt the assembler to use Lex and Yacc, in order to gain familiarity with these language tools
• Implement a compiler frontend for a barely-Turing-complete high-level language, maybe supporting only if, goto, and call/return, and implement the backend that targets the chosen instruction set
• Add a strong, static type checker, along the lines of Pascal
• Expand the language by switching to language workbenches, like Spoofax, Xtext, or MPS
• Implement a simplified version of the chosen CPU architecture in Verilog or VHDL, perhaps even digging down to a cycle-accurate version

An average student can get through the first two steps in the first two years of college, perhaps even in the first two semesters.