Type-Safe Dynamic Placement with First-Class Placed Values
Description
Dyno is a programming language that enables static reasoning about dynamic
placement. Dyno features a type system where values are explicitly placed, but in contrast to existing
approaches, placed values are also first-class, ensuring that they can be passed around and referred to from
other locations. Building on top of this mechanism, we provide a novel interpretation of dynamic placement
as unions of placement types. We formalize type soundness, placement correctness (as part of type soundness)
and architecture conformance. In case studies and benchmarks, our evaluation shows that Dyno enables
static reasoning about programs even in presence of dynamic placement, ensuring type safety and placement
correctness of programs at negligible performance cost. We reimplement an Android app with ∼ 7 K LOC
in Dyno, find a bug in the existing implementation, and show that the app’s approach is representative of a
common way to implement dynamic placement found in over 100 apps in a large open-source app store.
Files
Files
(2.1 GB)
Name | Size | Download all |
---|---|---|
md5:14e6525be040744c252d5a66bcfce94f
|
2.1 GB | Download |
Additional details
Funding
- Multitier Programming above the Clouds 200021_200429
- Swiss National Science Foundation