|
|
|
|
|
by breadbox
4781 days ago
|
|
s/like/know/ Algol perhaps had the disadvantage of being far more popular among academics than among actual programmers. Perhaps for that reason Algol became the lingua franca of pseudocode, while C became the lingua franca of actual code. (I don't know if this is fair, but I've always had the impression that Algol was a bit like Ada in its time: respected by those who used it, but a bit too kitchen-sink to be popular among implementors.) |
|
For instance, why does C differentiate between for loops and while loops? Because mathematically there's a natural partition between the two: for loops correspond to primitive recursion, and while loops correspond to total recursion.
Here's another one: why are unions called unions? Because, if types are interpreted as sets, the C union is directly equivalent to the set theoretic union. Similarly, structures are directly equivalent to the Cartesian product (although they are not named appropriately).
K&R were geniuses, not only in practical programming, but in the egg-head understanding of the mathematical theory behind programming languages.