Debugging concurrent programs is difficult. This is primarily because the inherent non-determinism that arises because of scheduler interleavings makes it hard to easily reproduc...
Large-scale distributed systems have dense, complex code-bases that are assumed to perform multiple and inter-dependent tasks while user interaction is present. The way users inte...
Angelos Stavrou, Gabriela F. Cretu-Ciocarlie, Mich...
Data structures define how values being computed are stored and accessed within programs. By recognizing what data structures are being used in an application, tools can make app...
Programmers build large-scale systems with multiple languages to reuse legacy code and leverage languages best suited to their problems. For instance, the same program may use Jav...
Byeongcheol Lee, Martin Hirzel, Robert Grimm, Kath...
In this paper we describe Ginger, a new language with first class support for literate programming. Literate programming refers to a philosophy that argues computer programs shou...