Charla: Functional Programming with Datalog
Sebastian Erdweg (JG University of Mainz, Germany)

Abstract: Datalog is a carefully restricted logic programming language. What makes Datalog attractive is its declarative fixpoint semantics: Datalog queries consist of simple Horn clauses, yet Datalog solvers efficiently compute all derivable tuples even for recursive queries. However, as we argue in this talk, Datalog is ill-suited as a programming language and Datalog programs are hard to write and maintain. We propose a “new” frontend for Datalog: functional programming with sets. While programmers write recursive functions over algebraic data types and sets, we transparently translate all code to standard Datalog relations. However, we retain Datalog’s strengths: Functions that generate sets can encode arbitrary relations and mutually recursive functions have fixpoint semantics. We also ensure that the generated Datalog code terminates whenever the original functional program terminates, so that we can apply off-the-shelve bottom-up Datalog solvers. We demonstrate the versatility and ease of use of our functional Datalog frontend by implementing a type checker, a program transformation, an interpreter of the untyped lambda calculus, two data-flow analyses, and clone detection of Java bytecode.

Bio: Sebastian Erdweg is a professor of computer science at JGU Mainz in Germany, where he works on the foundation and application of programming languages. Sebastian's goal is to support developers in creating and maintaining reliable and efficient software systems. His group studies the design and efficient implementation of program languages, programming tools, and programming methods, with a particular focus on static analysis, logic programming, and


Comunicaciones DCC

  • Tags

Sala G301 - Edificio Geología, Beauchef 850

Beauchef 850

Fecha del evento
20 de Octubre de 2022
10:15 - 11:30

Laboratorio PLEIAD