LoCal: A Language for Programs Operating on Serialized Data
In a typical data-processing program, the representation of data in memory is distinct from its representation in a serialized form on disk. LoCal extends a region calculus into a location calculus, employing a type system that tracks the byte-addressed layout of all heap values. 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.
Source: pldi19.sigplan.org