Honey: A dataflow programming language for the processing, featurization and analysis of multivariate, asynchronous and non-uniformly sampled scalar symbolic time sequences

We introduce HONEY; a new specialized programming language designed to facilitate the processing of multivariate, asynchronous and non-uniformly sampled symbolic and scalar time sequences. When compiled, a Honey program is transformed into a static process flow diagram, which is then executed by a virtual machine. Honey's most notable features are: (1) Honey introduces a new, efficient and non-prone to error paradigm for defining recursive process flow diagrams from text input with the mindset of imperative programming. Honey's specialized, high level and concise syntax allows fast and easy writing, reading and maintenance of complex processing of large scalar symbolic time sequence datasets. (2) Honey guarantees programs will be executed similarly on static or real-time streaming datasets. (3) Honey's IDE includes an interactive visualization tool which allows for an interactive exploration of the intermediate and final outputs. This combination enables fast incremental prototyping, debugging, monitoring and maintenance of complex programs. (4) In case of large datasets (larger than the available memory), Honey programs can be executed to process input greedily. (5) The graphical structure of a compiled program provides several desirable properties, including distributed and/or paralleled execution, memory optimization, and program structure visualization. (6) Honey contains a large library of both common and novel operators developed through various research projects. An open source C++ implementation of Honey as well as the Honey IDE and the interactive data visualizer are publicly available.