Rhyme: A Data-Centric Expressive Query Language for Nested Data Structures
We present Rhyme, an expressive language designed for high-level data manipulation, with a primary focus on querying and transforming nested structures such as JSON and tensors, while yielding nested structures as output. Rhyme draws inspiration from a diverse range of declarative languages, including Datalog, JQ, JSONiq, Einstein summation (Einsum), GraphQL, and more recent functional logic programming languages like Verse. It has a syntax that closely resembles existing object notation, is compositional, and has the ability to perform query optimization and code generation through the construction of an intermediate representation (IR). Our IR comprises loop-free and branch-free code with program structure implicitly captured via dependencies. To demonstrate Rhyme’s versatility, we implement Rhyme in JavaScript (as an embedded DSL) and illustrate its application across various domains, showcasing its ability to express common data manipulation queries, tensor expressions (à la Einsum), and more.
Tue 16 JanDisplayed time zone: London change
11:00 - 12:30 | |||
11:00 30mTalk | Rhyme: A Data-Centric Expressive Query Language for Nested Data Structures PADL | ||
11:30 30mTalk | Hardware implementation of OCaml using a synchronous functional language PADL Loïc Sylvestre LIP6 - Sorbonne Université, Paris, Jocelyn Sérot Institut Pascal, Clermont-Ferrand, Emmanuel Chailloux UPMC, France | ||
12:00 30mTalk | Cutting the Cake Into Crumbs: Verifying Envy-Free Cake-Cutting Protocols using Bounded Integer Arithmetic PADL Martin Lester University of Reading |