-
When to Teach C++?
Some friends and I were recently debating when CS undergrads should be taught C++. People have various opinions, but it’s clear that C++ no longer enjoys the somewhat dominant position that it did a number of years ago. My own opinions are rooted in an experience I had around 1995 as a TA for a…
-
Box Elder Peak
[nggallery id=46] I have a hiking book that refers to Box Elder Peak as the red-headed stepchild of the central Wasatch Range. This is true: Box Elder is a lonely 11,000′ mountain stuck right in between the big and impressive Timpanogos and Lone Peak massifs. The other day Dave Hanscom and I decided to climb…
-
C No Evil
Your mortal enemy would like to ship a really great product in a week or two. Towards the goal of maximally delaying this product, you may inject a single C preprocessor definition into one of their header files. What is it? Keep in mind that anything which stops the project from compiling will be rapidly…
-
Testing Commercial Compilers
A few weeks ago a reader left this comment: Just out of curiosity John, have you approached any of the big commercial compiler companies about getting free licenses for their products? I don’t work in the compiler business but if a university research time offered to rigorously test my software, for free, I’d say yes.…
-
Fall on Snow
Yesterday the local news had this story about a guy who took an uncontrolled slide down a chute in Maybird Gulch in Little Cottonwood Canyon outside of Salt Lake City. The slide took him over some rocks and he was lucky to survive — the video accompanying the story is terrifying. Video Courtesy of KSL.com…
-
Open Proposals (or: Take My Idea — Please)
Sharing research papers on the web is not very controversial because sharing benefits everyone (other than a few increasingly irrelevant special interests). Sharing research proposals is a thornier proposition: since the work remains to be done, it exposes researchers to scooping. However, I would argue that scooping is not really very likely, and anyone whose…
-
Isolation with a Very Small TCB
A basic service provided by most computer systems is isolation between different computations. Given reliable isolation we can safely run programs downloaded from the web, host competing companies’ sites on the same physical server, and perhaps even run your car’s navigation or entertainment software on the same processor that is used to control important system…
-
Proposal for Automated Compiler Bug Reports
[Yesterday I submitted a proposal to Google for a modest amount of money to work on turning large random programs that expose compiler flaws into concise bug reports. Below is a transcription that is mostly faithful (citations are omitted and I changed the example bug report from a floating figure into inline text). Feedback is…
-
ISSTA 2011
Earlier this week I gave one of the keynote talks at ISSTA, the International Symposium on Software Testing and Analysis. A year ago Matt Dwyer, the general chair, sent me the following invitation: I would like to invite you to give a keynote talk to the meeting about the challenges in testing, dynamic and static…
-
Split Vote
In my group’s recent compiler testing paper we wrote: We have never seen an “interesting” split vote where randomized differential testing of a collection of C compilers fails to produce a clear consensus answer Randomized differential testing is just a fancy way of describing this process: Randomly generate a test input Run it through several…