Fotografía de autor

Henry S. Warren, Jr.

Autor de Hacker's Delight

1 Obra 501 Miembros 2 Reseñas 1 Preferidas

Sobre El Autor

Obras de Henry S. Warren, Jr.

Hacker's Delight (2002) 501 copias

Etiquetado

Conocimiento común

Nombre canónico
Warren, Henry S., Jr.
Género
male

Miembros

Reseñas

I often recommend this book to my programming students, not to learn something new, but more like a self-test. Everybody can learn programming, but not everybody enjoys bit manipulation and numerical optimization. This book is a perfect test to measure the programming affinity. I do agree that the title doesn't reflect the contents. Anyway, this book is just awesome.
 
Denunciada
oruiz | otra reseña | Oct 9, 2021 |
First of all, the book itself is incredible.

The title was poorly chosen, unfortunately. The connotation of "hacker" in the public mind is somewhat different than the word's meaning forty years ago at MIT, and I found (and continue to find) this book shelved alongside ephemera about firewalls and internet security. Thinking it was about "1337 hacking", I picked it off the shelf for a quick sneer. Six hours later, the bookstore had to kick me out because they were closing.

Think of it as "The Art of Computer Programming, Volume 0: Bit Manipulation". Except without the annoying Knuth attitude.

"Hacker's Delight" is a timeless classic, a scholarly and exhaustive treatment of finite-word-length arithmetic and other bit-manipulation algorithms. The book is excellently written and the material lovingly presented. For some people (such as me), the mathematical beauty and cleverness of the solutions is reason enough to find the book fascinating. For other people (such as me), there are extensive practical applications.

However, the size of the latter group (or, perhaps, relative percentage) is dwindling with time. A programmer who thinks that the universe begins and ends with Oracle and PHP respectively is unlikely to need an 8-RISC-instruction algorithm for dividing integers by 7. The essence of programming is abstraction, and as computational resources become more abundant, the path of progress abstracts further and further away from the machine. For many modern programmers, there are no bits -- there are only "numbers" (double-precision floats, typically), and the hardware handles these floats just as gracefully as integers. In this world, one's complementing and shifting have no meaning.

Even for those working at a lower level, the caching and pipelining schemes of modern architectures can complicate some of the assumptions in this book. For example, branch performance is highly architecture-dependent, and the efficiency that can be gained through branch tuning can outweigh that of shaving off a few instructions. Warren is careful to provide and identify branch-free algorithms whenever possible, but it often is not. As another example, parallel instruction scheduling means that not only is a routine no longer the sum of its instructions' cycles, it's not even completely deterministic, at least from the programmer's perspective.

But I work in the embedded field, and my targets have ranged from 1 MHz 8-bit 6502s through 50 MHz 32-bit Coldfires to creatively-handicapped DSPs of various sorts. Not a FPU or branch predictor in sight. In such situations, the algorithms in "Hacker's Delight" can be lifesavers. Not to mention, so much fun! If you approach optimization as a puzzle, wherein the solution is its own reward, this book is indeed a compendium of delights.

Many descriptions of this book refer to it as a collection of programming "tricks". I dislike that word; it implies a casualness and triviality that does not befit a book of this rigor and scope. I prefer the subtitle of Johnson and Graham's text on high-speed digital design: "A Handbook of Black Magic".

If your magic dust is bits and cycles, this is your spellbook.
… (más)
5 vota
Denunciada
worrydream | otra reseña | Dec 31, 2006 |

Listas

También Puede Gustarte

Estadísticas

Obras
1
Miembros
501
Popularidad
#49,399
Valoración
3.9
Reseñas
2
ISBNs
4
Favorito
1

Tablas y Gráficos