Computer Science as a scholarly discipline.
Google Scholar tells me that “Why Functional Programming Matters” was published in 1989 and has been cited over 1000 times. Here’s a quote. Recall that a complete functional program is just a function...
View Articleundefined behavior and the purpose of C
C undefined behavior. From one of the LLVM developers: This behavior enables an analysis known as “Type-Based Alias Analysis” (TBAA) which is used by a broad range of memory access optimizations in the...
View ArticleTypes considered harmful
Russell introduced what is often viewed as his most original contribution to mathematical logic: his theory of types—which in essence tries to distinguish between sets, sets of sets, etc. by...
View ArticleThe C standard committee effort to kill C continues
Consider the following code: void f(void) { unsigned char x[1]; /* intentionally uninitialized */ x[0] ^= x[0]; printf("%d\n", x[0]); printf("%d\n", x[0]); return; } In this example, the unsigned char...
View ArticleThe C standard versus C and the mother of all hacks.
The Kafkaesque interaction of the C standard and the main open source C compilers was concisely outlined by one of the main LLVM authors back in 2011: “knowing that INT_MAX+1 is undefined allows...
View ArticleCurrent reading: July 8 2017
Principal type-schemes for functional programs∗ Luis Damas† and Robin Milner First published in POPL ’82: Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages,...
View ArticleC compiler developers are hostile to C programming
From the LLVM developer mailing list this remarkable exchange in which Chris Lattner of LLVM says that the compiler use of undefined behavior (UB) is so “crappy” that the only solution is to abandon C...
View ArticleSorting and groups
I can’t find much reference to this in the literature (see Maus for some hints and an interesting paper) , but surely people have looked at sorting as a problem in group theory? Given a sequence say a...
View ArticleGoogle Manifesto shows that many programmers are bad at logic
Everyone can recognize some kinds of spurious reasoning – like the following: (A) Most programmers are not great. (B) Google tries to hire only excellent programmers (C) A implies B is hopeless and...
View ArticleThe crackpot Google manifesto and unthoughtful sadness
Defenders of the Google manifesto as an argument about science are in denial about the topic of this crackpot screed. Damore claims that any program to encourage hiring and promotion of women and...
View ArticleCurrent reading August 2017
Two-way string matching And an implementation in Musl. The C standard post C11 The Rube-Goldberg approach to fault tolerance in NTPd which is not worse than PTP fault tolerance but a lot worse than...
View ArticleBad ideas in type theory
Types as sets and subtypes as subsets. This may be due to confusing usage in mathematical practice where, for example, we often see references to integers as a subset of reals. But in mathematical...
View ArticleQuicksort without pseudo code
Sorting is a basic topic in computer science and it is all about putting a finite sequence in order according to some measure. The usual presentation involves either pseudo-code or actual code. I think...
View ArticleTypes considered harmful II
Russell introduced what is often viewed as his most original contribution to mathematical logic: his theory of types—which in essence tries to distinguish between sets, sets of sets, etc. by...
View ArticleCurrent reading: meltdown and spectre edition
The two attacks. Test code. (via Lobste.rs) Limits of ASLR. Spanner,True Time and CAP See also Synchronous Processors. and processor architecture.
View Articleinformal methods applied to networks and timeouts
Distributed computation involves many interesting issues concerning the consistent or non-consistent quality of shared data. Here I want to sketch out what networks look like in terms of logical...
View ArticlePaxos shaken but not stirred
The infamous distributed consensus algorithm, dissected, patented, with miracle ingredients. (minor updates march 5)
View ArticleMore UB madness from LLVM/Clang
Via @johnregehr this further tale of compiler “optimizations” that break correct C code without even a warning by deleting a necessary null pointer check. In this example, Bar contains a stack of...
View ArticleXor patterns
The xor i mod 128 “multiplication table” as presented by Mathematica. Here is the mod 64 matrix.
View ArticleNew and or notable.
My new favorite line: “My good sir, I worry that your groundbreaking treatise will go overlooked here on Twitter” This is a great essay on programming: Operant Conditioning by Software Bugs. This is a...
View Article