Why It Works
Based on an algorithm used widely by programmers coding in assembly for minimizing the number of tests and branches during a copy, Duff's device appears out of place when implemented in C. The device is valid C by virtue of two attributes in C:
- Relaxed specification of the switch statement in the language's definition. At the time of the device's invention this was the first edition of The C Programming Language which requires only that the controlled statement of the switch be a syntactically valid (compound) statement within which case labels can appear prefixing any sub-statement. In conjunction with the fact that, in the absence of a break statement, the flow of control will fall through from a statement controlled by one case label to that controlled by the next, this means that the code specifies a succession of count copies from sequential source addresses to the memory-mapped output port.
- The ability to jump into the middle of a loop in C.
Note that, as documented in the comment appearing in Duff's un-optimized version, the code assumes that count is strictly positive.
Read more about this topic: Duff's Device
Famous quotes containing the word works:
“There is a great deal of self-denial and manliness in poor and middle-class houses, in town and country, that has not got into literature, and never will, but that keeps the earth sweet; that saves on superfluities, and spends on essentials; that goes rusty, and educates the boy; that sells the horse, but builds the school; works early and late, takes two looms in the factory, three looms, six looms, but pays off the mortgage on the paternal farm, and then goes back cheerfully to work again.”
—Ralph Waldo Emerson (18031882)