October 2004
Intermediate to advanced
240 pages
6h 22m
English
Trying to outsmart a compiler defeats much of the purpose of using one.
—Brian Kernighan & P.J. Plauger
If you lie to the compiler, it will get its revenge.
—Henry Spencer
There will always be things we wish to say in our programs that in all known languages can only be said poorly.
—Alan Perlis
Last, but certainly not least, we will consider type correctness—a very important property of a program that you should strive to preserve at all times. Theoretically, a type-correct function can never access untyped memory or return forged values. Practically, if your code maintains type soundness, it avoids a large category of nasty errors ranging from nonportability to corrupting memory to creating bogus values to exhibiting undefined ...