Skip to main content

LoCal: a language for programs operating on serialized data

Vollmer, Michael, Koparkar, Chaitanya, Rainey, Mike, Sakka, Laith, Kulkarni, Milind, Newton, Ryan R. (2019) LoCal: a language for programs operating on serialized data. In: PLDI 2019: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. . pp. 48-62. ACM ISBN 978-1-4503-6712-7. (doi:10.1145/3314221.3314631) (KAR id:95505)

PDF Publisher pdf
Language: English

Download (437kB)
[thumbnail of pldi19main.pdf]
This file may not be suitable for users of assistive technology.
Request an accessible format
Official URL:


In a typical data-processing program, the representation of data in memory is distinct from its representation in a serialized form on disk. The former has pointers and arbitrary, sparse layout, facilitating easy manipulation by a program, while the latter is packed contiguously, facilitating easy I/O. We propose a language, LoCal, to unify in-memory and serialized formats. LoCal extends a region calculus into a location calculus, employing a type system that tracks the byte-addressed layout of all heap values. We formalize LoCal and prove type safety, and show how LoCal programs can be inferred from unannotated source terms.

We transform the existing Gibbon compiler to use LoCal as an intermediate language, with the goal of achieving a balance between code speed and data compactness by introducing just enough indirection into heap layouts, preserving the asymptotic complexity of traditional representations, but working with mostly or completely serialized data. We show that our approach yields significant performance improvement over prior approaches to operating on packed data, without abandoning idiomatic programming with recursive functions.

Item Type: Conference or workshop item (Proceeding)
DOI/Identification number: 10.1145/3314221.3314631
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Michael Vollmer
Date Deposited: 06 Dec 2022 17:05 UTC
Last Modified: 09 Dec 2022 10:29 UTC
Resource URI: (The current URI for this page, for reference purposes)
Vollmer, Michael:
  • Depositors only (login required):


Downloads per month over past year