5 ms·
Code is my favorite technical book of all time [1]. Charles does an amazing job of building a computer up from basic principles "two young boys who want to comm
by localhost 4y ago
Code is my favorite technical book of all time [1]. Charles does an amazing job of building a computer up from basic principles "two young boys who want to communicate after their parents tell them to go to bed at night" all the way to modern (for 1999) computers. He layers abstraction on top of abstraction all the way to a working computer. My only (slight) disappointment in the book is that he tries to cover operating systems -> object oriented programming in a couple of chapters at the end. That could have been a multi-volume series in its own right.
It goes really well with Elements of Computing Systems (2nd ed) [2] which I kind of think of as a "lab manual" where you get to build a computer from first principles.
[1] https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319 https://www.amazon.com/Code-Language-Computer-Hardware-Softw...
[2] https://www.amazon.com/Elements-Computing-Systems-second-Principles/dp/0262539802 https://www.amazon.com/Elements-Computing-Systems-second-Pri...
- danielvaughn 4y agoI picked it up years ago, got through the first few chapters, but then never finished it. I loved the early buildup and still want to go back and keep reading.
- unethical_ban 4y agoSame! Still one of my favorite books ever read, but other than the floating point chapter it started getting over my head.
- greymalik 4y agoWhen the book “builds” a computer, I’m assuming that’s a virtual computer? If so, what language does it use?
- deleted 4y ago[deleted]
- jagged-chisel 4y agoGP said “builds up to.” It’s more about the abstractions adding up so that the reader understands how electrons can be programmed. There is no implementation of any kind of virtual or hardware machine in the book. He goes: electricity, relays, logic gates, circuits (like adders), CPU, RAM … It’s been awhile so I might have missed a step or two. You’ll come away knowing how we used electricity to get from lightning bolts, to pocket computers. You will not come away with a programmable machine.
- Jtsummers 4y agoIf you're actually looking for something that does build to a virtual computer, Nand2Tetris (second edition of the book The Elements of Computing Systems that goes with it is now out) is a great companion to Code: https://www.nand2tetris.org/ https://www.nand2tetris.org/. Code is more high level, Nand2Tetris and Elements is project based but covers some similar territory.
- greymalik 4y agoI was actually asking about The Elements of Computing Systems in my comment, not Code. What language does it use to build a virtual computer?
- localhost 4y agoYou program in HDL using the Nand2Tetris software suite [1]. Super fun - I went through the book on my vacation last year. Highly recommended. [1] https://www.nand2tetris.org/software https://www.nand2tetris.org/software
- ayushka 4y agoNand2tetris uses its own version of Hardware Description Language (HDL). You will also write a compiler for it's own language called Hack.
- BobLaw 4y agoQuoted from the 2021 edition: "Project 4 is written in the computer’s assembly language, and projects 9 and 12 (a simple computer game and a basic operating system) are written in Jack—the Java-like high-level language for which we build a compiler in chapters 10 and 11."
- virissimo 4y agoThe hardware exercises expect you to use a simple HDL, you write an assembler in your language of choice (I used Ruby, but others have used Python or JavaScript), and you write programs for the computer you "built" in earlier chapters using Jack (a language with Java-like syntax).
- Closi 4y agoIt’s more a book that actually shows you how a computer really works, from first principles. It’s not a book about implementing a particular computer - it’s more about giving you the rough thought process about how it actually works at the level of electricity and wires, and how this gets built up into something that actually calculates stuff. It’s the first book that took me from “computers are mystical magic” to “computers are understandable magic”.
- cptnapalm 4y agoThere is a much older text book called the Art of Digital Design. In it, if you buy and solder the necessary components, you get a fully working PDP-8.