River: An intermediate language for stream processing

Robert Soulé, Martin Hirzel, Buğra Gedik, Robert Grimm

Research output: Contribution to journalArticle

Abstract

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.

Original languageEnglish (US)
JournalSoftware - Practice and Experience
DOIs
StateAccepted/In press - 2015

Fingerprint

Rivers
Processing
Ecosystems
Semantics

Keywords

  • Optimizations
  • Stream processing

ASJC Scopus subject areas

  • Software

Cite this

River : An intermediate language for stream processing. / Soulé, Robert; Hirzel, Martin; Gedik, Buğra; Grimm, Robert.

In: Software - Practice and Experience, 2015.

Research output: Contribution to journalArticle

Soulé, Robert ; Hirzel, Martin ; Gedik, Buğra ; Grimm, Robert. / River : An intermediate language for stream processing. In: Software - Practice and Experience. 2015.
@article{937f1fef259947ec9db3cee0700a8886,
title = "River: An intermediate language for stream processing",
abstract = "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.",
keywords = "Optimizations, Stream processing",
author = "Robert Soul{\'e} and Martin Hirzel and Buğra Gedik and Robert Grimm",
year = "2015",
doi = "10.1002/spe.2338",
language = "English (US)",
journal = "Software - Practice and Experience",
issn = "0038-0644",
publisher = "John Wiley and Sons Ltd",

}

TY - JOUR

T1 - River

T2 - An intermediate language for stream processing

AU - Soulé, Robert

AU - Hirzel, Martin

AU - Gedik, Buğra

AU - Grimm, Robert

PY - 2015

Y1 - 2015

N2 - 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.

AB - 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.

KW - Optimizations

KW - Stream processing

UR - http://www.scopus.com/inward/record.url?scp=84930535990&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84930535990&partnerID=8YFLogxK

U2 - 10.1002/spe.2338

DO - 10.1002/spe.2338

M3 - Article

JO - Software - Practice and Experience

JF - Software - Practice and Experience

SN - 0038-0644

ER -