Cuneiform (programming language)
Cuneiform is an open-source workflow language for large-scale scientific data analysis. It is a statically typed functional programming language promoting parallel computing. It features a versatile foreign function interface allowing users to integrate software from many external programming languages. At the organizational level Cuneiform provides facilities like conditional branching and general recursion making it Turing-complete. In this, Cuneiform is the attempt to close the gap between scientific workflow systems like Taverna, KNIME, or Galaxy and large-scale data analysis programming models like MapReduce or Pig Latin while offering the generality of a functional programming language.
Paradigm | functional, scientific workflow |
---|---|
Designed by | Jörgen Brandt |
First appeared | 2013 |
Stable release | 3.0.4
/ November 19, 2018 |
Typing discipline | static, simple types |
Implementation language | Erlang |
OS | Linux, Mac OS |
License | Apache License 2.0 |
Filename extensions | .cfl |
Website | cuneiform-lang |
Influenced by | |
Swift (parallel scripting language) |
Cuneiform is implemented in distributed Erlang. If run in distributed mode it drives a POSIX-compliant distributed file system like Gluster or Ceph (or a FUSE integration of some other file system, e.g., HDFS). Alternatively, Cuneiform scripts can be executed on top of HTCondor or Hadoop.
Cuneiform is influenced by the work of Peter Kelly who proposes functional programming as a model for scientific workflow execution. In this, Cuneiform is distinct from related workflow languages based on dataflow programming like Swift.