“Turing’s work was of course a great contribution to the world of mathematics, but there is a question of exactly how it is related to the world of computing. – Wilkes The undecidability of the halting problem for Turing
Semiotics of functional programming
In contrast to the usual imperative languages (e.g., C, Fortran, and Ada), in which variables represent cells in memory that can be modified using the assignment operator = (or :=), functional languages view the use of the = operator as
Von Neumann’s critique of automata theory and logic in computer science
These remarks from “THE GENERAL AND LOGICAL THEORY OF AUTOMATA” 1947 are, not surprisingly, enormously insightful. Von Neumann essentially predicts the emergence of the field of analysis of algorithms and algorithmic complexity. Not only does he point out the importance
undefined behavior and the purpose of C
The C programming language is designed to let programmers work at both low and high levels. In particular, for applications like operating system development, cryptography, numerical methods, and network processing, programmers can go back and forth between treating data as
Spanner in the works
The developers of Google’s Spanner database built an interesting system but chose to build their own clock synchronization technology instead of getting a more precise off the shelf solution and chose to make extensive use of the notoriously complex Paxos
Comrades Cheyne and Stokes and mathematics
There is a great book of stories by Soviet era radio astronomer Iosef Shklovsky called 5 Billion Vodka Bottles to the Moon which has a this story (which I tell from memory, no guarantees) In 1953 a young Jewish math
Flat address spaces: another crank idea for computer architecture
The poor C programming language is ridiculously out of fashion. Critics like to explain how, Dennis Ritchie didn’t know any math, or that the type system of C fails to invoke any category theoretical concepts and that, unlike in the
Practical uses of synchronized clocks -Liskov
From 1991, Barbara Liskov looked at the implications for distributed computing when synchronized clocks are available.
Three modest proposals for the C standard WG14
Note: these were sent to WG14 as official proposals. See also a longer paper, something on alias and Torvalds remarks and Regehr’s paper. 6.12 Proposal to clarify undefined behavior range for implementations [N 2278] 6.13 Proposal to make aliasing consistent [N
Vector optimization with C aliasing
One of the common defenses of the abuse of “undefined behavior” by C compilers, and the stupid aliasing rules in the standard is that those things are necessary for optimizations, like using vector operations. Here’s an example of where gcc