- Paperback: 344 pages
- Publisher: The MIT Press (March 31, 2005)
- Language: English
- ISBN-10: 0262640686
- ISBN-13: 978-0262640688
- Product Dimensions: 8 x 0.7 x 9 inches
- Shipping Weight: 1.2 pounds (View shipping rates and policies)
- Average Customer Review: 85 customer reviews
- Amazon Best Sellers Rank: #25,618 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
The Elements of Computing Systems: Building a Modern Computer from First Principles
Use the Amazon App to scan ISBNs and compare prices.
Frequently bought together
Customers who bought this item also bought
A refreshingly new way of looking at computer systems as a whole by considering all aspects of a complete system in an integrated manner.(Jonathan Bowen Times Higher Education Supplement)
About the Author
Noam Nisan is Professor at the Institute of Computer Science and Engineering, Hebrew University of Jerusalem.
Shimon Schocken is the IDB Professor of Information Technologies and Dean of the Efi Arazi School of Computer Science, Interdisciplinary Center Herzliya.
Browse award-winning titles. See more
Top customer reviews
on manner. This book let me do that to precision.
The sheer amount of effort put in by the team behind this book is laudable.
You first actually build the hardware, then build a compiler and then the OS.
These three are really the building blocks, the foundations and the through
understanding of these subjects will make you a brilliant (understated) professional.
A few tips: Actually work through this book, chapter wise, step wise. Do not
skip any step, especially right upto chapter 8. Based upon your programming experience,
you may prefer to skip the projects from chapter 9 onwards (not recommended). I worked
through the book in sequence right upto chapter 8 and have kept chapters 10,11, 12 as
later weekend projects. Simply because I have sufficient programming experience using
Lisp and other languages, with some experience in parsing complex inputs.
As a side effect, being a Lisp programmer, it helped me understand at a gut level why
homoiconic languages are 'actually' better even in context of compiler construction. Is
it not a design decision to choose a simple grammar? This book will help you figure it
Other tips: This book may be hard or easy based upon two things: 1. Your prior digital
electronics knowledge. 2. The richness of your prior programming experience. 3. This
book will not spoon feed you. 4. The projects are extremely fun because you are nudged
For me this is a book which has turned the tide to explain the foundations of computing
It is a MUST WORK THROUGH book. For me its right up there with the other gem "SICP".
What it will not go into is 'Networking' and 'Persistent Disk Storage'. But that in no
way comes in building the foundations as the other foundational concepts apply to these
two areas and others as well. By the way the authors have proposed these as extensions.
So you could actually spend a weekend or two, building graphics, networking chips and
adding these facilities to your OS. Interesting.
Hats off to the team for producing a GEM.
I am amazed at how much coverage is given to such a wide variety of topics. Going from logic gate construction to building a rich programming language and run-time environment is not an easy task. It succeeds in just 12 chapters. I am impressed with the amount of work that must have gone into its creation.
It also does a great job introducing concepts like Boolean logic, 2s complement arithmetic, clocking, machine and assembler code, pointer arithmetic, language tokenization and parsing, stack processing, and virtual machines.
I wish I'd had something like this when I was starting out. I strongly recommend it to anyone who is.
The premise of the book is that you start with a NAND viewed as a black box, and everything is built from there. Using NANDs to built the remaining basic gates, using those to build ALUs and CPUs, creating an assembler, virtual machine, and then a compiler.
The author states that the idea of 'how' the NAND gate is built is more of the domain of the physicists and electrical engineers... not the computer scientists. So, they assuming the read largely just takes this for grated. They also end up doing something similar with the data flip-flop. Personally, I would have liked to see a little more explanation on how these are implemented to give me a little better sense that I could actually build my own CPU giving the resources, time and drive.
But, overall, a book I can't more highly recommend to anybody wanting to understand how computers work.
Most recent customer reviews
If you give me enough transistors, I'm completely sure I could build a computer out of them.