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...
It is well recognized that JavaScript can be exploited to launch browser-based security attacks. We propose to battle such attacks using program instrumentation. Untrusted JavaScr...
Dachuan Yu, Ajay Chander, Nayeem Islam, Igor Serik...
Transparent persistence promises to integrate programming languages and databases by allowing procedural programs to access persistent data with the same ease as non-persistent da...