ML modules and Haskell type classes have proven to be highly effective tools for program structuring. Modules emphasize explicit configuration of program components and the use of...
Derek Dreyer, Robert Harper, Manuel M. T. Chakrava...
In recent years we have seen great progress made in the area of automatic source-level static analysis tools. However, most of today's program verification tools are limited ...
Byron Cook, Alexey Gotsman, Andreas Podelski, Andr...
Type-preserving compilation can improve software reliability by generating code that can be verified independently of the compiler. Practical type-preserving compilation does not ...
Separation Logic, Ambient Logic and Context Logic are based on a similar style of reasoning about structured data. They each consist of a structural (separating) composition for r...
Future software development will rely on product synthesis, i.e., the synthesis of code and non-code artifacts for a target component or application. Prior work on feature-based p...
In aspect-oriented programming, one can intercept events by writing patterns called pointcuts. The pointcut language of the most popular aspect-oriented programming language, Aspe...
Pavel Avgustinov, Elnar Hajiyev, Neil Ongkingco, O...
We present a model of recursive and impredicatively quantified types with mutable references. We interpret in this model all of the type constructors needed for typed intermediate...
Andrew W. Appel, Christopher D. Richards, Jé...
Massive amounts of useful data are stored and processed in ad hoc formats for which common tools like parsers, printers, query engines and format converters are not readily availa...
Artem Gleyzer, David Walker, Kathleen Fisher, Mary...
An invariance assertion for a program location is a statement that always holds at during execution of the program. Program invariance analyses infer invariance assertions that ca...