Category: Computer Science

  • Proposal to Stress-Test Implementations of C++11 Concurrency

    I recently submitted a proposal to NSF’s “small” Computer Systems Research solicitation. The rest of this post contains the body of the proposal, edited a bit for formatting (citations are missing and there are no doubt some leftover latex-isms) and to remove some sections that are tedious to people not sitting on an NSF panel.…

  • What PC-lint is Really For: Enforcing Language Dialects

    John Carmack’s piece about using static analyzers is really nice, and he’s right that applying PC-lint to a significant piece of C code results in page after page of warnings. Faced with this problem on a code base I cared about, and not wanting to give up, I first created a config file for PC-lint…

  • Bit Puzzle Results

    This is the followup piece to Monday’s bit puzzle. First off, the spec for this problem wasn’t clear what to return when both arguments are the same. But let’s look at Carlos’s comment about where this code would be used: If you think of a binary number as a sequence of binary tree decisions on the…

  • A Bit Puzzle

    I love a good bit-level puzzle. Today’s is one I learned about from a comment in a Google+ discussion: Given two words a and b, return the high bits that they have in common, with the highest bit where they differ set, and all remaining bits clear. So 10101 and 10011 yields 10100. Then do…

  • A Different Approach to System Security

    I enjoy it when science fiction has something useful to say about computer security. Towards the end of Iain M. Banks’ Matter, there’s a big space battle and we find this passage: “Compromised,” Hippinse told him. “Taken over by the other side. Persuaded by a sort of thought-infection.” “Does that happen a lot, sir?” “It…

  • Android Projects Retrospective

    The Android Projects class I ran this semester has finished up, with students demoing their projects last week. It was a lot of fun because: I find mobile stuff to be interesting the students were excited about mobile the students were good (and taught me a ton of stuff I didn’t know) the course had…

  • How Should Integers Work?

    Integer computer math is kind of a bummer because it’s a lot more complicated than it seems like it should be. I’m specifically talking about the way that fixed-width integers wreck havoc on program logic when they overflow. There are other issues, but this seems like the big one. So: How should integers work? C/C++’s…

  • Csmith 2.1 Released

    We’ve released version 2.1 of Csmith, our random C program generator that is useful for finding bugs in compilers and other tools that process C code. The total number of compiler bugs found and reported due to Csmith is now more than 400. All Csmith users should strongly consider upgrading. New features in this release…

  • Perverse Incentives in Academia

    A perverse incentive is one that has unintended consequences. The world is full of these and the Wikipedia article has some great examples. Academia seems particularly prone to perverse incentives. Incentive Intended Effect Actual Effect Researchers rewarded for increased number of publications. Improve research productivity. Avalanche of crappy, incremental papers. Researchers rewarded for increased number…

  • Black Friday on Wednesday

    Until now, my department hasn’t done any kind of formal, department-wide evaluation of our graduate students and their progress. A number of people, including me, have argued for some time that we should be doing something like CMU’s Black Friday. This semester Suresh, our current DGS, has made this happen; the meeting was today. Overall…