July 8th, 2009 () specification › admin › No Comments
Here’s Edsger Dijkstra discussing the birth of the use of axiomatics in computer science – the start of “formal methods” research. What’s striking is the assumed choice between “axiomatic” and “mechanistic” as if there was no other way. In a later note he writes:
And now we are back at our old dilemma. Either we take [...]
July 2nd, 2009 () specification › admin › No Comments
Despite some deep results, algebraic automata theory has fallen out of favor in theoretical computer science. Reasons include the disciplines failings such as a love of over-generality, weak mathematical background of people working on “formal methods”, and gap between theoreticians and engineers. But perhaps the key reason is that traditional state machine presentations in [...]
February 25th, 2009 () embedded systems, operating systems, real-time, rtlinux, software engineering › admin › 1 Comment
This paper by Prof. Edward Lee explains something of why “threads” are such a painful abstraction. As Prof. Lee notes, threads intrinsically create non-determinism and resource conflicts which we then attempt to “prune” via synchronization and complex tools. In an earlier note, I argued that we should design real-time multi-threaded applications to minimize the need [...]
November 10th, 2008 () security+fault-tolerance, software engineering, software security, software security › admin › No Comments
Here’s Dijkstra
He [Perlis] published a very obnoxious paper arguing against a mathematical approach to programming cite
Here’s the paper by De Millo, Lipton and Perlis. It starts as follows:
Many people have argued that computer programming should strive to become more like mathematics. Maybe so, but not in the way they seem to think. The aim of [...]
July 17th, 2008 () intellectual property, software business, software engineering › admin › No Comments
Most of the new draft of the Concurrent Programs paper has to do with trying to specify problems and solutions in synchronization via an atomic “compare and swap” operation. Even these operations are surprisingly complicated once put under the microscope – or not so surprisingly complicated if you think about the details of using or [...]
June 4th, 2008 () software engineering › admin › 1 Comment
Updated rough draft available with thrilling descriptions of atomic compare and swap and some comments on “formal methods”. Bonus photo
May 18th, 2008 () operating systems, software engineering › admin › No Comments
Please see a new version here. I am continuing to try to develop a practical engineering mathematics for operating system and other complex system code.