Seminar - Micro Virtual Machines as Trustworthy Foundation for Languages and Applications
School of Engineering and Computer Science Seminar
Speaker: Tony Hosking (ANU, Data61, Purdue U)
Time: Tuesday 18th July 2017 at 03:00 PM - 04:00 PM
Location: Cotton Club, Cotton 350
Many of today’s programming languages are broken. Poor performance, lack of features, hard-to-reason-about semantics, and vulnerabilities baked into their implementations can cost dearly in software maintenance, inefficient execution, and security bugs. This brokenness arises because many languages are defined more by their implementation than a clean specification. The difficulties in implementation and insufficient understanding of concepts bake bad designs into the language itself. Moreover, even supposedly safe languages build on shaky foundations by implementing in languages that are themselves broken. The difficulties in implementation and insufficient understanding of cross-cutting concepts bake bad designs into the language itself. Concurrency, architectural details, and garbage collection are three fundamental concerns that contribute much to the complexities of implementing managed languages. I will describe the micro virtual machine, a thin abstraction designed specifically to relieve implementers of managed languages of the most fundamental implementation challenges that currently impede good designs. The micro virtual machine targets abstractions over memory (garbage collection), architecture (compiler backend), and concurrency. I will motivate the micro virtual machine and give an account of the design and initial experience of a concrete instance, which we call Mu, built over a four year period. Our goal is to remove an important barrier to performant and semantically sound managed language design and implementation, and ultimately to provide a trustworthy (formally verified) framework for managed languages and their applications, running on diverse platforms (from embedded devices to cloud servers).