Blogs

Why Does C++ Allow Arithmetic on Null Pointers?
My last two notes discussed a subtle language-design issue that simplifies programmers' lives in ways that they often don't suspect. This theme seems useful, so I'll continue it.
Let's All Write a Mobile OS!
Intel, Nokia, Microsoft and the endless relaunching of mobile operating systems
The Long and Short of Parallelism
Ten years ago, multi-core processors were just on the horizon. Today they are mainstream and have become the impetus for a revolution in computer programming that can make best use of the two, four, six, or eight cores.
The Solution to Last Week's Language-Design Puzzle
Anomalies, and design strategies for avoiding them, are among the many reasons that programming-language design is harder than it looks.
Ham It Up
Hamming distance is important in reliable systems and is also used in some cryptography algorithms.
The Tell-Tale Compiler
In this post, I want to remind you to consider issues that your parallel code can encounter from the compiler.
Java Concurrency: The Executor Service
Exploring the Java Executor Service, which is useful for managing pools of threads, as well as the scheduling of future events
A Language-Design Puzzle in Operator Overloading
Resolving an overloaded function call involves finding a single possibility that is strictly better than all the others.


