
Dataflow applications, such as machine learning algorithms,can run for days, making it desirable to have assurances that they willwork correctly. Current tools are not good enough: too often the interactions between tasks are not type-safe, leading to undesirable runtimeerrors. 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 theworkflow, it has a strong mathematical basis, refocusing on how dataflows through an application, resulting in a more expressive solutionthat not only catches errors statically, but also achieves competitive runtime performance. In our preliminary evaluation, CircuitFlow outperformsthe industry-leading Luigi library of Spotify by scaling better with thenumber 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 programcorrectness is paramount.
eDSL, Haskell, /dk/atira/pure/core/keywords/programming_languages, Dataflow programming, name=Programming Languages, /dk/atira/pure/core/keywords/programming_languages; name=Programming Languages, Domain-specific languages, 004
eDSL, Haskell, /dk/atira/pure/core/keywords/programming_languages, Dataflow programming, name=Programming Languages, /dk/atira/pure/core/keywords/programming_languages; name=Programming Languages, Domain-specific languages, 004
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
