Tue 22 Oct 2024 11:50 - 12:15 at Pasadena - Morning Paper Session

Algebraic Data Types (ADTs) are an increasingly common feature in modern programming languages. In many implementations, values of non-nullary, multi-case ADTs are allocated on the heap, which may reduce performance and increase memory usage. This work explores annotation-guided optimizations to ADT representation in Virgil, a systems-level programming language that compiles to x86, x86-64, Wasm and the Java Virtual Machine. We extend Virgil with annotations: #unboxed to eliminate the overhead of heap allocation via automatic compiler transformation to a scalar representation, and #packed, to enable programmer-expressed bit-layouts. These annotations allow programmers to both save memory and manipulate data in formats dictated by hardware. This work is in some ways an homage to work done in collaboration with Palsberg in the work entitled “A Declarative Approach to Generating Machine Code Tools” [16]. In fact, it inherits some syntactic conventions from that manuscript. The performance impact of these representation changes was evaluated on a variety of workloads in terms of execution time and memory usage, but we don’t include it because Jens like semantics and type systems better!

Tue 22 Oct

Displayed time zone: Pacific Time (US & Canada) change

11:00 - 12:30
Morning Paper SessionJENSFEST at Pasadena
11:00
25m
Talk
Towards Verification of a Denotational Semantics of Inheritance
JENSFEST
Peter D. Mosses Delft University of Technology and Swansea University
DOI File Attached
11:25
25m
Talk
Correct Compilation of Concurrent C Code
JENSFEST
John Bender Sandia National Laboratories
11:50
25m
Talk
Unboxing Virgil ADTs For Fun and Profit
JENSFEST
Bradley Wei Jie Teo Jane Street, Ben L. Titzer Carnegie Mellon University