- Shopping Bag ( 0 items )
Posted March 16, 2005
As the title states there is a machine underneath the high level code most developer¿s use today. As we code in today¿s hectic environment of changing requirements and tight deadlines, we often lose site of this. In a world where programmers work for many employers, on many platforms, using many different compilers it is beneficial to always remember how the code we write will translate to something the computer can use. Many programmers today haven¿t had any exposure to assembly language or writing their own compilers. This book is a great primer, or reminder, of how computers and its instruction set work. This is definitely a book to have in your library, knocking the dust off frequently for review.Was this review helpful? Yes NoThank you for your feedback. Report this reviewThank you, this review has been flagged.
Posted March 15, 2005
This book argues that in order to write efficient (high level) code, you must first understand how the low-level system operates. If you have a better understanding of how your computer performs mathematical computations, it might change how you write code for certain algorithms. In any case, this book is one of the most comprehensive volumes in computer architecture that I have seen. Proceeding from most simple to most complex, the book begins by discussing how numbers are stored, and eventually moves (in the final chapter) to how I/O works. I found the initial chapters most interesting, which included information on binary and hexadecimal numbers, how characters are stored in memory, how the computer handles various floating-point precisions, and how you would go about designing your own character types. It¿s all basic computer science stuff, but fun to read either as a refresher or for the first time (in case you skipped that day of class). Each chapter takes on a more complex aspect of the computer, moving from memory representations to CPU architecture. Naturally a discussion about the CPU leads to information on CPU instruction sets. Finally, the author wraps up the book with a discussion on I/O, which includes not just disk access, but the keyboard, USB, optical drives, and the file allocation table. My only complaint with this book is that I wish that with the impending move to 64-bit architecture, there was more information included in this regard. However, in spite of that small omission, this is a really fascinating book to read. As you write your next bit of code, if you think about what the computer is really doing under the covers, then I think this book has achieved its goal.Was this review helpful? Yes NoThank you for your feedback. Report this reviewThank you, this review has been flagged.
Posted January 15, 2005
I am now on the last chapter reading this book. It is a very well written book with many examples written in Assembly, C/C++ and Pascal. The detailed workings of computer hardware are explained far better than any of my college courses. There is also considerable discussion of why certain aspects of software react the way they do. I would recommend this book for anyone who does, or will, work with computers, but it will better benefit those who write programs at the system level, such as hardware drivers or firmware, or who need to write very tight code, such as for mobile phones. For the average programmer just looking to write cleaner code, there are better books available.Was this review helpful? Yes NoThank you for your feedback. Report this reviewThank you, this review has been flagged.
Posted October 31, 2004
As new computer languages arise that have more power, like Java and C#, have you noticed something? Often, someone might learn programming without ever having to know about the architecture of a von Neumann machine. Yet most computers since World War 2 have this design at their very core. Hyde fills in this gap in the education. At one level, you should read it for 'culture'. It explains the basis of programming. Granted, for most of us, there is often no direct need for understanding how binary arithmetic is implemented. Or why registers can speed up performance. And what is cache memory, really? We finesse our ignorance by invoking libraries that subsume these details. The material that Hyde explains may occasionally be of use. What if you need to write some of these low level procedures in assembler, to reduce a bottleneck? After using a profiler on your runtime code to find the key routines, do you have any idea how to improve matters? Even out of pure intellectual curiosity, you should know what happens at the silicon. Or are you just a wage slave? Programming because you have to? A good programmer who loves to program should know this material. Also, out of pure self interest, you should always burnish your programming skills. To separate you from your peers.Was this review helpful? Yes NoThank you for your feedback. Report this reviewThank you, this review has been flagged.