Soulé R.Hirzel M.Gedik, B.Grimm, R.2018-04-122018-04-1220160038-0644http://hdl.handle.net/11693/36943Summary This paper presents both a calculus for stream processing, named Brooklet, and its realization as an intermediate language, named River. Because River is based on Brooklet, it has a formal semantics that enables reasoning about the correctness of source translations and optimizations. River builds on Brooklet by addressing the real-world details that the calculus elides. We evaluated our system by implementing front-ends for three streaming languages, and three important optimizations, and a back-end for the System S distributed streaming runtime. Overall, we significantly lower the barrier to entry for new stream-processing languages and thus grow the ecosystem of this crucial style of programming.EnglishOptimizationsStream processingCalculationsComputational linguisticsFormal methodsOptimizationRiversSemanticsDistributed streamingFormal semanticsFront endIntermediate languagesReal-worldRuntimesComputer hardware description languagesRiver: an intermediate language for stream processingArticle10.1002/spe.2338