Buy this book if you're a programmer who wants to know how computers work. I read the first edition in high school, and if I had to choose either this book or my entire undergrad CS education, I'd pick this book.
The Elements of Computing Systems, Second Edition
11–20 of 101 posts
Re: The Elements of Computing Systems, Second Edition
#12Buy this book if you're a programmer who wants to know how computers work. I read the first edition in high school, and if I had to choose either this book or my entire undergrad CS education, I'd pick this book.
Seriously. After reading this book I realized that I didn't understand shit about computers before. Wondering what the second edition adds.
I'm looking forward to diving into the second edition and hoping the second half is better than the first edition.
Re: The Elements of Computing Systems, Second Edition
#13Buy this book if you're a programmer who wants to know how computers work. I read the first edition in high school, and if I had to choose either this book or my entire undergrad CS education, I'd pick this book.
Re: The Elements of Computing Systems, Second Edition
#14Often material is either too abstract or far too detailed, ECS managed to find the perfect balance where someone with a CS background can drill down to transistors and come back upwards again and really understand where they are going on that journey.
Re: The Elements of Computing Systems, Second Edition
#15Gah! So mad I just bought the first edition!
Re: The Elements of Computing Systems, Second Edition
#16Re: The Elements of Computing Systems, Second Edition
#17It is incomplete, but I thought I would share my implementation of the software stack in F#. Currently, only the assembler is implemented, but in my personal opinion, I think it showcases the beauty of F# for domain modeling. When I return to the project, I hope to restart the VM implementation and continue adding to the FPGA implementation as well. My eventual goal is to have the entire software stack built using F# that can than be run on an FPGA implementation of the CPU.
https://github.com/bmitc/nand2tetris
Types to model the instructions and source file expressions: https://github.com/bmitc/nand2tetris/blob/main/dotnet/Nand2T...
The full assembler, mainly consisting of the parser and translator: https://github.com/bmitc/nand2tetris/blob/main/dotnet/Nand2T...
Re: The Elements of Computing Systems, Second Edition
#18The original architecture had some caveats - e.g. no external interrupt capability, so IO was implemented using busy polling and inspection specific IO-mapped memory regions (I don't blame them, as it made the book more concise and you can not cover everything) and there has been discussion about a HACK-2 from the community, so it would be interesting if somebody knows more.
Re: The Elements of Computing Systems, Second Edition
#19Buy this book if you're a programmer who wants to know how computers work. I read the first edition in high school, and if I had to choose either this book or my entire undergrad CS education, I'd pick this book.
Re: The Elements of Computing Systems, Second Edition
#20As others have commented, the original book was one of those little gems that once you read, you realise how blind you were before, and it is extremely accessible. Often material is either too abstract or far too detailed, ECS managed to find the perfect balance where someone with a CS background can drill down to transistors and come back upwards again and really understand where they are going on that journey.
The only thing that rivaled that lightbulb was aspects of Theory of Computation with undecidability, turing machine vs stack machine vs state machine powers that theoretically limit Von Neumann architecture.
I'll have to pick this up to see what is new, what would really be nice is if they can get a bit into SSDs and modern superspeed networking, I/O, and multicore that wasn't as prevalent back in the day.