Title: Micro Virtual Machines for Managed Languages: Abstraction, contained

A large fraction of today's software is written in managed languages. These languages increase software productivity by supporting programming at a very high level, hiding the complexity of modern computer hardware and operating systems. Examples include JavaScript, PHP, Objective-C, Java, C#, Python, and Ruby. These languages have great economic importance. Unfortunately, most of these languages are inefficient, imposing overheads as large as a factor of fifty compared to orthodox language choices such as C. The broader impacts of this research are two-fold: (1) Since managed languages are increasingly becoming economic linchpins, deployed in the engine rooms of global e-commerce platforms and Internet applications (including those of key software companies such as Amazon, Google, Facebook, Apple, Oracle, and Microsoft), improving the reliability and performance of these managed language platforms will lead to economic efficiencies as well as resource efficiencies in the form of reduced power costs to data centers and improved battery lifetime on mobile devices;(2) Concerning human diversity in the computing field, the research will engage undergraduates from under-represented groups, and encourage them to pursue graduate school and careers in computing and research.

This research project is defining, developing, evaluating, and refining the essential components of a new foundation layer for managed language implementation. In doing so, it addresses a key source of systemic inefficiency, by pioneering the "micro virtual machine" (microVM) as an efficient high-performance substrate for managed language implementation. The relationship between a microVM and existing managed language implementations is analogous to that between an operating system micro kernel and monolithic operating systems such as Linux. The microVM captures the insight that there exists a well-defined foundation common to most modern languages that can take responsibility for fundamental abstractions over hardware, concurrency, and memory. By isolating and exposing this substrate, the microVM embodies state-of-the-art base technology available to language implementers while isolating them from the pernicious complexities of these abstractions, freeing them to focus on all-important language-specific optimizations. The research is enabling more efficient software and a distinctly sharper focus for language implementation research and development. The intellectual merits of the research are: (1) Researching and identifying, via prototyping and evaluation, the right microVM abstractions, allowing clean separation of low-level language-neutral and high-level language-specific concerns, capturing the core behaviors, while also admitting high-performance language implementations; (2) Generating secondary research challenges, especially with regard to the effective and efficient combination of abstractions for hardware, concurrency, and memory; and (3) Creating a viable target for formal verification because the microVM has a relatively small code base, thus taking one step on the way towards trustworthy subsystems for assurance of managed software.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
1409284
Program Officer
Anindya Banerjee
Project Start
Project End
Budget Start
2014-06-15
Budget End
2020-05-31
Support Year
Fiscal Year
2014
Total Cost
$683,681
Indirect Cost
Name
University of Massachusetts Amherst
Department
Type
DUNS #
City
Hadley
State
MA
Country
United States
Zip Code
01035