Supercomputing in Seattle
I firmly believe that supercomputing of today is the mainstream computing of tomorrow. A year and a half ago I wrote a blog about the future of concurrent programming based on new developments in...
View ArticleSupercomputing: An Industry in Need of a Revolution
How would you like a job in the supercomputing industry? Programming those powerful Ks, Jaguars, Roadrunners, Blue Genes, or gigantic clusters of computers? How inspiring would that be? Not much,...
View ArticleVirtual Memory
I started a new series of blogs about virtual machines. It’s a relatively exotic technology but the ideas behind it are simple. As an introduction, I explained how virtual memory is implemented by the...
View ArticleThe Downfall of Imperative Programming
My new blog post is at the FP Commplete web site where I work now. It explains the major unsolved problem of imperative programming and why I turned to functional programming. There is also an animated...
View ArticleThe Future of C++ Concurrency and Parallelism
It was my first experience working with the C++ Standardization Committee in a subgroup dedicated to concurrency and parallelism. I won’t bore you with details — they will be available at the committee...
View ArticleEdward C++Hands
I’ve been looking for a good analogy of what programming in C++ feels like and I remembered this 1990 Tim Burton movie, Edward Scissorhands. It’s a darker version of Pinocchio, shot in suburban...
View ArticleFunctional Data Structures in C++: Trees
Persistent trees are more interesting than persistent lists, which were the topic of my previous blog. In this installment I will concentrate on binary search trees. Such trees store values that can be...
View ArticleC++17: I See a Monad in Your Future!
[If you prefer, you may watch the video of my talk on this topic (here are the slides).] If you thought you were safe from functional programming in your cozy C++ niche, think again! First the lambdas...
View ArticleThe Functional Revolution in C++
C++ is like an oil tanker — it takes a long time for it to change course. The turbulent reefs towards which C++ has been heading were spotted on the horizon more than ten years ago. I’m talking, of...
View ArticleBenign Data Races
Can a data race not be a bug? In the strictest sense I would say it’s always a bug. A correct program written in a high-level language should run the same way on every processor present, past, and...
View Article