A LANGUAGE-BASED APPROACH TO PROGRAMMING WITH SERIALIZED DATA

Loading...
Thumbnail Image
Date
2021-02
Journal Title
Journal ISSN
Volume Title
Publisher
[Bloomington, Ind.] : Indiana University
Abstract
In a typical data-processing application, the representation of data in memory is distinct from its representation in a serialized form on disk. The former has pointers and an arbitrary, sparse layout, facilitating easier manipulation by a program, while the latter is packed contiguously, facilitating easier I/O. I propose a programming language, LoCal, that unifies the in-memory and on-disk representations of data. LoCal extends prior work on region calculi into a location calculus, employing a type system that tracks the byte-addressed layout of all heap values. I present the formal semantics of LoCal and prove type safety, and show how to infer LoCal programs from unannotated source terms. Then, I demonstrate how to efficiently implement LoCal in a practical compiler that produces code competitive with hand-written C.
Description
Thesis (Ph.D.) - Indiana University, School of Informatics, Computing, and Engineering, 2021
Keywords
computer science, programming languages, compilers, types
Citation
DOI
Link(s) to data and video for this item
Relation
Rights
Type
Thesis