Bobbing for Kernels

See Bob. See Bob bob. Bob, Bob, bob!

Posts Tagged ‘education’

A fun way to build a Scheme compiler?

Posted by kernelbob on October 14, 2009

I found this.

An Incremental Approach to Compiler Construction
Abdulaziz Ghuloum

It’s a paper describing an agile approach to building a compiler.  It starts with a tiny “language” that only contains integer constants, and builds a compiler that emits x86 assembly to return integer constants.  Then it incrementally builds that, in “steps of a single working session”, into a compiler for a fully usable Scheme language.

The author is at Indiana University, so I suppose there’s a class to go with it.  I didn’t find the class notes, but I did find a longer tutorial paper.


Posted in languages | Tagged: , , | Leave a Comment »

NAND Gates to Tetris, wrap up.

Posted by kernelbob on June 25, 2008

That was a load of fun.  I finished all the class projects in The Elements of Computing Systems.  The projects got more involved as they got higher-level.

Read the rest of this entry »

Posted in computers | Tagged: , , , | Leave a Comment »

Nand Gates to Tetris, part 2

Posted by kernelbob on June 9, 2008

First, I told all my friends about this textbook.  Last night, I started doing the exercises.  I’ve done about half the course now, including all the hardware sections.  It’s been a lot of fun.  I’ve never designed a CPU before, and it was fun seeing how all the pieces fit together.

The machine the class uses has a weird architecture.  It’s definitely more pedagogical than useful.  For example, there are no shift instructions.  It reminds me of the old bit slice processors — the instruction set is a lot like microcode.

Posted in computers, Uncategorized | Tagged: , , | Leave a Comment »

Nand Gates to Tetris

Posted by kernelbob on June 7, 2008

If you haven’t seen this, you should go see it.

From NAND Gates to Tetris in 14 Weeks.

It’s an undergraduate class that starts by building simple logic circuits, uses those to build sequential circuits, then registers, CPUs, VMs, compilers, OSes, and applications.  Every project builds on the last one, and at the end, the student has a game (Tetris) every part of which he has constructed himself, down to the NAND gates.  Okay, not really, but he’s been exposed to every level of technology and should have good comprehension of how each layer is implemented.

The whole textbookSelected chapters of the book, the problem sets, the simulator software, and the unit tests are available free at the above URL.

Pretty amazing stuff!

Posted in computers | Tagged: , , | Leave a Comment »