Hostname: page-component-74656f9884-8r8nv Total loading time: 0 Render date: 2026-11-09T10:15:40.525Z Has data issue: false hasContentIssue false

Computation semantics of the functional scientific workflow language Cuneiform*

Published online by Cambridge University Press:  24 October 2017

JÖRGEN BRANDT
Affiliation:
Humboldt-Universität zu Berlin, Unter den Linden 6, 10099 Berlin, Germany (e-mails: brandjoe@informatik.hu-berlin.de, reisig@informatik.hu-berlin.de, leser@informatik.hu-berlin.de)
WOLFGANG REISIG
Affiliation:
Humboldt-Universität zu Berlin, Unter den Linden 6, 10099 Berlin, Germany (e-mails: brandjoe@informatik.hu-berlin.de, reisig@informatik.hu-berlin.de, leser@informatik.hu-berlin.de)
ULF LESER
Affiliation:
Humboldt-Universität zu Berlin, Unter den Linden 6, 10099 Berlin, Germany (e-mails: brandjoe@informatik.hu-berlin.de, reisig@informatik.hu-berlin.de, leser@informatik.hu-berlin.de)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Cuneiform is a minimal functional programming language for large-scale scientific data analysis. Implementing a strict black-box view on external operators and data, it allows the direct embedding of code in a variety of external languages like Python or R, provides data-parallel higher order operators for processing large partitioned data sets, allows conditionals and general recursion, and has a naturally parallelizable evaluation strategy suitable for multi-core servers and distributed execution environments like Hadoop, HTCondor, or distributed Erlang. Cuneiform has been applied in several data-intensive research areas including remote sensing, machine learning, and bioinformatics, all of which critically depend on the flexible assembly of pre-existing tools and libraries written in different languages into complex pipelines. This paper introduces the computation semantics for Cuneiform. It presents Cuneiform's abstract syntax, a simple type system, and the semantics of evaluation. Providing an unambiguous specification of the behavior of Cuneiform eases the implementation of interpreters which we showcase by providing a concise reference implementation in Erlang. The similarity of Cuneiform's syntax to the simply typed lambda calculus puts Cuneiform in perspective and allows a straightforward discussion of its design in the context of functional programming. Moreover, the simple type system allows the deduction of the language's safety up to black-box operators. Last, the formulation of the semantics also permits the verification of compilers to and from other workflow languages.

Information

Type
Research Article
Copyright
Copyright © Cambridge University Press 2017 
Submit a response

Discussions

No Discussions have been published for this article.