Konstantinos Kallas

they/them (he/him is also fine)
PhD student, UPenn
Proud member of the PLClub.
Office: Levine 513
Contact: kallas@seas.upenn.edu

Curriculum Vitae
Short Bio
Personal Blog


I am a PhD student at the University of Pennsylvania, where I am fortunate to be advised by Rajeev Alur. My research interests lie in the intersection of programming languages, distributed systems, and software verification. I have done an internship in Microsoft Research, where I worked with Sebastian Burckhardt, and an internship in the Automated Reasoning Group in AWS, where I worked with Daniel Schwartz-Narbonne. Before my PhD, I did my undergraduate studies at the National Technical University of Athens, where I was advised by Kostis Sagonas.

Quick Links: Research, Papers, Awards, Software, Service, Personal


Automatic parallelization of shell scripts

Links: PaSh Star, PaSh paper (EuroSys 2021), Dataflow paper (In submission), Shell Future paper (HotOS 2021), Short video (POPL SRC)

Collaborators: Nikos Vasilakis, Michael Greenberg, Achilleas Benetopoulos, Lazar M. Cvetković, Shivam Handa, Konstantinos Mamouras, and Martin Rinard

Together with Nikos Vasilakis, we are leading a research project on the automatic parallelization of shell scripts. The ultimate goal is to improve our understanding of the shell, approaching it from a programming languages viewpoint, and build frameworks that enable further studies and analyses on it. Our first paper on this work was published at EuroSys 2021 (preprint). One of the main challenges that we had to overcome is that shell commands are arbitrary black boxes that can be written in a plethora of programming languages, making any analysis infeasible. We addressed that by developing an annotation language that captures a few key properties of shell commands that can then be used by our system to parallelize a script. These annotations are written once per command, and can be shared among users in the form of annotation libraries. We are also working on a paper (preprint) that formalizes an order-aware dataflow model that is equivalent to a "scheduling-free" fragment of the shell. We use this model as an convenient representation on which we apply transformations that expose parallelism. After we are done parallelizing, the dataflow graph is transformed back to a shell script that can execute on any standard shell. Our work is open-source and available on Github.

Partial order driven stream processing

Links: Flumina on Github Star, Diffstream on GitHub Star, Diffstream paper (OOPSLA 2020)

Collaborators: Rajeev Alur, Filip Niksic, and Caleb Stanford

Existing abstractions for stream processing either consider streams to either be totally ordered sequences, completely unordered relations, or some fixed point in between, e.g., CQL considers streams to be sequences of relations. However, these representations face a number of issues. If a representation does not capture adequate order, streaming queries can produce erroneous results due to nondeterminism and out-of-order input data. If a representation is "too ordered", then it does not expose available parallelism, and optimizations due to lack of order. We propose a flexible partial order abstraction that can capture fine-grained ordering requirements, allowing for correct and maximally parallel stream processing. Our first paper on this work was published at OOPSLA 2020 (link), where we describe a differential testing framework (code) for stream processing applications that allows users to define the ordering requirements on their application's output, improving testing accuracy. We are also working on a programming model that can exploit the partially ordered nature of the input stream, generating highly parallel implementations. This work is under submission, but a prototype of the code is available on (Github).








In my free time I enjoy programming (for fun or in programming competitions), board games, escape rooms, and ping pong. I also occasionally play guitar in an amateur jam band.