CircuitFlow: A Domain Specific Language for Dataflow Programming

Samantha Frohlich, Meng Wang*, Riley Evans

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference Contribution (Conference Proceeding)

6 Citations (Scopus)
108 Downloads (Pure)

Abstract

Dataflow applications, such as machine learning algorithms,
can run for days, making it desirable to have assurances that they will
work correctly. Current tools are not good enough: too often the interactions between tasks are not type-safe, leading to undesirable runtime
errors. This paper presents a new declarative Haskell Embedded DSL
(eDSL) for dataflow programming: CircuitFlow. Defined as a Symmetric Monoidal Preorder (SMP) on data that models dependencies in the
workflow, it has a strong mathematical basis, refocusing on how data
flows through an application, resulting in a more expressive solution
that not only catches errors statically, but also achieves competitive runtime performance. In our preliminary evaluation, CircuitFlow outperforms
the industry-leading Luigi library of Spotify by scaling better with the
number of inputs. The innovative creation of CircuitFlow is also of note,
exemplifying how to create a modular eDSL whose semantics necessitates effects, and where storing complex type information for program
correctness is paramount.
Original languageEnglish
Title of host publicationPractical Aspects of Declarative Languages
Subtitle of host publication24th International Symposium, PADL 2022, Philadelphia, PA, USA, January 17–18, 2022, Proceedings
EditorsJames Cheney, Simona Perri
PublisherSpringer Nature
Pages79-98
Number of pages20
ISBN (Electronic)978-3-030-94479-7
ISBN (Print)978-3-030-94478-0
DOIs
Publication statusPublished - 31 Jan 2022

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume13165 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Bibliographical note

Funding Information:
The work is partly supported by EPSRC Grant EXHIBIT: Expressive High-Level Languages for Bidirectional Transformations (EP/T008911/1) and Royal Society Grant Bidirectional Compiler for Software Evolution (IESR3170104).

Publisher Copyright:
© 2022, Springer Nature Switzerland AG.

Research Groups and Themes

  • Programming Languages

Keywords

  • eDSL
  • Domain-specific languages
  • Haskell
  • Dataflow programming

Fingerprint

Dive into the research topics of 'CircuitFlow: A Domain Specific Language for Dataflow Programming'. Together they form a unique fingerprint.

Cite this