As heterogeneous parallel systems become dominant, application developers are being forced to turn to an incompatible mix of low level programming models (e.g. OpenMP, MPI, CUDA, ...
Inclusion-based points-to analysis provides a good trade-off between precision of results and speed of analysis, and it has been incorporated into several production compilers inc...
Fixing concurrency bugs (or crugs) is critical in modern software systems. Static analyses to find crugs such as data races and atomicity violations scale poorly, while dynamic a...
Guoliang Jin, Aditya V. Thakur, Ben Liblit, Shan L...
Fred Brooks’ retelling of the biblical story of the Tower of Babel offers many insights into what makes building software difficult. The difficulty, according to common interp...
Type classes were originally developed in Haskell as a disciplined alternative to ad-hoc polymorphism. Type classes have been shown to provide a type-safe solution to important ch...
Bruno C. d. S. Oliveira, Adriaan Moors, Martin Ode...