Learning concepts through conversations in spoken dialogue systems
Bootstrapping semantic parsers from conversations
In this paper, we present an approach for using conversational interactions of this type to induce semantic parsers. We demonstrate learning without any explicit annotation of the meanings of user utterances.
Elements of a Relational Theory of Datatypes
The "Boom hierarchy" is a hierarchy of types that begins at the level of trees and includes lists, bags and sets. This hierarchy forms the basis for the calculus of total functions developed by Bird and Meertens, and which has become known as the "BirdMeertens formalism".
A tutorial on the universality and expressiveness of fold
In functional programming, fold is a standard operator that encapsulates a simple pattern of recursion for processing lists. This article is a tutorial on two key aspects of the fold operator for lists.
A commutative replicated data type for cooperative editing
CRDTs: Consistency without concurrency control
Letia, Preguiça, Shapiro
A CRDT is a data type whose operations commute when they are concurrent. Replicas of a CRDT eventually converge without any complex concurrency control. As an existence proof, we exhibit a non-trivial CRDT: a shared edit buffer called Treedoc. We outline the design, implementation and performance of Treedoc.
Designing a commutative replicated data type
Commuting operations greatly simplify consistency in distributed systems. This paper focuses on designing for commutativity, a topic neglected previously. We show that the replicas of any data type for which concurrent operations commute converges to a correct value, under some simple and standard assumptions
Verified Peephole Optimizations for CompCert
Mullen, Zuniga, Tatlock, Grossman
Transformations over assembly code are common in many compilers. These transformations are also some of the most bug-dense compiler components. Such bugs could be eliminated by formally verifying the compiler, but state-of-theart formally verified compilers like CompCert do not support assembly-level program transformations.
Improving the Static Analysis of Embedded Languages via Partial Evaluation
Programs in embedded languages contain invariants that are not automatically detected or enforced by their host language. We show how to use macros to easily implement partial evaluation of embedded interpreters in order to capture invariants encoded in embedded programs.
Improving Haskell Types with SMT
Improving Haskell Types with SMT - Diatchki
We present a technique for integrating GHC’s type-checker with an SMT solver. The technique was developed to add support for reasoning about type-level functions on natural numbers, and so our implementation uses the theory of linear arithmetic
Type Systems as Macros
Type Systems as Macros - Chang, Knauth, Greenman
We present Turnstile, a metalanguage for creating typed embedded languages. To implement the type system, programmers write type checking rules resembling traditional judgment syntax. To implement the semantics, they incorporate elaborations into these rules. Turnstile critically depends on the idea of linguistic reuse.
Paper: Type Tailoring
Type Tailoring - Greenman, Chang, Felleisen
Type tailoring enables programmers to extend the rules of a type system without modifying the compiler. Programmers may thus codify additional knowledge about functions and methods in the form of a library of typing rules, which others may use without imposing any additional burden on their code or work flow