Caleb Stanford

Image of Me

I am a PhD student in computer science at the University of Pennsylvania. My advisor is Rajeev Alur. Here is my CV.

I graduated from Brown University in May 2016 (ScB Mathematics – Computer Science).


My research interests include: (1) programming systems and abstractions for data stream processing; (2) formal verification; and (3) logical foundations of computing.

I attend the Penn PL Club:

Penn PL Club.

Current research

We aim to improve the state-of-the-art in stream-processing systems by developing tools and programming abstractions on strong formal foundations. To improve programmer productivity, good tools should be reliable, i.e. they should have a clear underlying semantics free of unexpected behavior. They should be expressive enough to describe common computations and programming patterns, including stateful computations and those sensitive to the ordering of the input data. Finally ,they should allow for high-level programming of the desired computation whenever the efficient low-level implementation can be inferred automatically.

Stream processing refers to the paradigm, increasingly critical in modern data processing and IoT applications, where data arrives at an extremely high rate and must be processed in real-time. Typically, algorithms in this setting are required to have a constant bound on space usage and a constant bound on the delay to process each element of the incoming stream. The algorithm is then scaled to larger workloads by distributing the computation among nodes in a distributed architecture. Popular modern stream-processing frameworks include Spark and Flink.

Existing systems generally provide very minimal overhead and achieve high throughput. They also aim to provide fault tolerance in the distributed setting. Orthogonal to this, however, there has not been a focus on developing an underlying framework and semantics which allows for reliable, high-level programming. Formal models which achieve this are elusive, with existing models either having completely low-level semantics or being limited in expressiveness. We believe that programmer productivity can be improved by separating the logical view of the computation from the physical implementation, but allowing room for both.


Work in Progress

Other Projects


Caleb Stanford DBLP

Caleb Stanford Google Scholar

Caleb Stanford ORCID page


castan at cis upenn edu

Last updated .