Atomic regions are an important concept in correct concurrent programming: since atomic regions can be viewed as having executed in a single step, atomicity greatly reduces the nu...
We show how to achieve typed and unambiguous declarative pattern matching on strings using regular expressions extended with a simple recording operator. We give a characterizatio...
Given the bytecode of a software system, is it possible to automatically generate attack signatures that reveal its vulnerabilities? A natural solution would be symbolically execu...
Pushdown systems provide a natural model of software with recursive procedure calls. We provide a tool implementing an algorithm for computing the winning regions of a pushdown par...
Abstract—We investigate the design of declarative, domain-specific languages for constructing interactive visualizations. By separating specification from execution, declarativ...