Granite: Compositional Functional Logic Programming
Granite is a strict and untyped programming language under development with the goal of enhancing functional programming along a number of axes. It aims to provide a basis for general-purpose programming that is:
- Parallelizable: Programs naturally incorporate deterministic parallelism in a manner remniscent of LVars.
- Expressive: Programmers have access to both the rich data structures common in functional programming as well as cyclic data types via functional logic programming in the style of Datafun.
- Compositional: It is easy to extend (mutually) recursive functions to support new cases using open recursion and a construct similar to the merge operator of Dunfield.
Perhaps surprisingly, these three aspects of language design are closely related: Granite’s design is emerging from the observation that at the heart of each of the above-mentioned lines of work lies a join-semilattice. Granite makes semilattice structure a first-class language feature. We describe several examples of this and discuss challenges that arise implementing the language.
Mon 4 SepDisplayed time zone: Pacific Time (US & Canada) change
14:00 - 15:30
|Continuations and Coexponentials
Vikraman Choudhury University of Glasgow
|Granite: Compositional Functional Logic Programming
|Semantic foundations of potential-synthesis for expected amortised-cost analysis