icicle icon indicating copy to clipboard operation
icicle copied to clipboard

Thesis project: surface language support for multiple input streams

Open amosr opened this issue 6 years ago • 0 comments

Icicle[1] is a streaming query language that only supports one input stream. We can, however, represent multiple input streams in a limited way. For example, we can represent two input streams A and B as a single stream of Either A B: when we read from the input stream, we may get the value from stream A, or we may get the value from stream B.

The problem with representing multiple input streams as Either is that it can be unwieldy to write queries over this representation. Synchronous streaming languages such as Lucid Synchrone[2] support multiple input streams, but require somewhat complex clock types to ensure certain streaming properties. This project would involve identifying to what extent multiple input streams can be supported without full clock types, and implementing this on the language front-end.

[1] https://www.cse.unsw.edu.au/~amosr/papers/robinson2016icicle.pdf [2] https://www.di.ens.fr/~pouzet/lucid-synchrone/manual_html/manual004.html

amosr avatar Feb 05 '19 21:02 amosr