Stuart Reges weak handwringing on Damore
James Damore’s “google memo” is available online, so anyone interested can see his claims that there is no wage gap, that women are paid less because they don’t want to work as hard as men, that...
View Articleautomata theory at scale
The ideas which are here expressed so laboriously are extremely simple and should be obvious. The difficulty lies, not in the new ideas, but in escaping from the old ones – Keynes. This note describes...
View ArticleThe halting problem has nothing to do with computers
“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 Despite what it says on the...
View ArticleSome State Machines
\(\newcommand{\ess}{\epsilon} \newcommand{\concat}{\mbox{ concat }}\) (Download pdf version) State maps Maps from finite sequences of events to “outputs” offer an alternative representation of Moore...
View Articleaperiodic and cyclic state maps
Some rough notes on modularity, composite state maps, cascades and aperiodics. The larger question is how to factor discrete systems into modules. Suppose \(f:E^*\to X\) where \(E^*\) is the set of...
View ArticleState maps for designs of computer software and hardware systems
\( \newcommand{\ess}{\epsilon} \newcommand{\RX}{\mathit{RX}} \newcommand{\TX}{\mathit{TX}} \newcommand{\rx}{\mathit{recv}} \newcommand{\tick}{\mathit{tick}}\) Operating systems and distributed...
View ArticleConcurrency
\(\newcommand{\ess}{Initial} \) Michel Charpentier provides a nice example of a simple, flawed, producer/consumer buffer implementation. The fundamental problem could be discovered by doing a Stack...
View Articleundefined behavior and the purpose of C
The C programming language, by design, permits programmers to work at both low and high level. In particular, for applications like operating system development, cryptography, numerical methods, and...
View ArticleComrades 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...
View ArticleSpanner 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...
View Articleundefined behavior and the purpose of C
The C programming language, by design, permits programmers to work at both low and high levels. In particular, for applications like operating system development, cryptography, numerical methods,...
View ArticleVon 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...
View ArticleC89 Standard
(This foreword is not a part of American National Standard for Information Systems --- Programming Language C, X3.???-1988.) American National Standard Programming Language C specifies the syntax and...
View ArticleDennis Ritchie on alias analysis in the C programming language 1988
This 1998 note by Dennis Ritchie from comp.lang.c (and also here ) is very current since the concept of noalias has definitely crept back into the standard. I have reproduced it verbatim, but lightly...
View ArticleC is not a serious programming language
The C Standards process over the last few decades has addressed both optimization and pointer type safety largely through a concept called “undefined behavior”. The idea is that instead of positive...
View ArticleUndefined behavior in C is a reading error.
Considering how important “undefined behavior” has become to C semantics and the ISO/IEC JTC1/SC22/WG14 Committee, the lack of any reference to it in the K&R ANSI book is notable and the...
View Article