5 ms·
Start with "The Elements of Computing Systems" by Nisan and Schocken. It's a book built around the goal of designing and constructing a computer from the ground
by jsyedidia 16y ago
Start with "The Elements of Computing Systems" by Nisan and Schocken. It's a book built around the goal of designing and constructing a computer from the ground up, starting with hardware design and ultimately writing the compiler and virtual machine for a simple Java-like language that runs on the computer you designed. You can download all the software necessary; all the software and support material work very well, and it's ideal for self-study. I think it's a great book; you can read my full review on Amazon--it's the only book I've ever been moved to review there.
- gauthr 16y agoI second this, and it's a surprisingly inexpensive book, to boot.
- jsyedidia 16y agoI forgot to mention: the book has a web-site at http://www1.idc.ac.il/tecs/ http://www1.idc.ac.il/tecs/ where you can download all the projects and software and some of the chapters of the book in .pdf form.
- pepelefieu 16y agoThis is a great book, although before you get started with this one, I would recommend this other one for a quick hands-on intro to compilers and interpreters: "Writing Compilers and Interpreters: A Software Engineering Approach, 3rd Edition," by Ronald Mak. If you've never had much guidance on the subject, writing a compiler for "The Elements of computing systems" could take an unnecessarily long amount of time your first time. Mak's book is in Java, which might be a plus in your case.
- ronaldoavich 16y agoI am very interested in compilers / interpreters and I think this book would be ideal. Have you read this book?
- blacklife 16y agoI also like "First Draft of a Report on the EDVAC" which essentially goes into thinking sort of questions that we today take for granted. For instance: 1) What arithmetic operations should one put into hardware ? 2) Do we really need main memory ? 3) How should I/O look like ? Fascinating read.
- dcx 16y agoAgreed, this is a great book. I'm working through this right now and finding it very rewarding. It's very information-dense, has very little fluff, and is still surprisingly easy to work through.
- rick_2047 16y agoAnyone knows where I can order this book in india? I checked and couldn't find it in any of the major book shops or libraries. Amazon is not an option coz I cannot pay for the shipping. Any other ideas?
- jsyedidia 16y agonbcindia.com has it for Rs. 1323 with free shipping in India, but it takes 20-30 days.
- gauthr 16y agoIt's worth the wait. This is a timeless book; its contents will not become obsolete.
- vsabu 16y agoThis book is available in India as Easter Economy Edition. Rs. 390/-. You can order from infibeam.com
- mian2zi3 16y agoThis does seem like a great book. I haven't read it, but I did enjoy the google tech talk, "From Nand to Tetris in 12 steps": http://video.google.com/videoplay?docid=7654043762021156507# http://video.google.com/videoplay?docid=7654043762021156507# However, the poster already has an undergraduate degree in CS. I imagine he knows much of this material already. There is story that Kazhdan (a mathematician) would, pointing to a book, tell his graduate students: "You should know everything in this book ... but don't read it!" I haven't figured out how to do this in mathematics (yet), but here is what I would do in CS: buy a $200 Xilinx FGPA kit (or write a hardware simulator), design a CPU, build a compiler and design an operating system for it. When you get stuck or need help look up references, read tutorials, talk to mentors, go online, whatever, etc. You're going to encounter all the same challenges if you read a book like this or take a class, but this way you'll own the problems that come up, and your solutions, rather than having them spoon-fed to you by a teacher or book.