The predominant thread-based approach to concurrent programming is bug-prone, difficult to reason about, and does not scale well to large numbers of processors. Sieves provide a s...
The use of bad names — names that are wrong, inconsistent or inconcise — hinder program comprehension. The root of the problem is that there is no mechanism for aligning the n...
Lazy programs are beautiful, but they are slow because they build many thunks. Simple measurements show that most of these thunks are unnecessary: they are in fact always evaluate...
R is a dynamic language for statistical computing that combines lazy functional features and object-oriented programming. This rather unlikely linguistic cocktail would probably ne...
An appropriate translation of the data model is central to any language migration effort. Finding a mapping between original and target data models may be challenging for legacy l...