"Have you ever played a side-scrolling action arcade game on your PC and wondered what it takes to program one? How do the programmers scroll their backgrounds so fast and mak...
The practice of software development can likely be improved if an externalized model of each programmer's knowledge of a particular code base is available. Some tools already...
A lens is a bidirectional program. When read from left to right, it denotes an ordinary function that maps inputs to outputs. When read from right to left, it denotes an "upd...
Aaron Bohannon, J. Nathan Foster, Benjamin C. Pier...
We describe an algorithm for deciding the first-order multisorted theory BAPA, which combines 1) Boolean algebras of sets of uninterpreted elements (BA) and 2) Presburger arithmeti...
We have designed, implemented, and evaluated AtomCaml, an extension to Objective Caml that provides a synchronization primitive for atomic (transactional) execution of code. A fir...