-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
140 lines (127 loc) · 8.33 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="description" content="The Micro Virtual Machine Project">
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
<title>The Mu Micro Virtual Machine Project</title>
</head>
<body>
<!-- HEADER -->
<div id="header_wrap" class="outer">
<header class="inner">
<a id="forkme_banner" href="https://gitlab.anu.edu.au/groups/mu">View on ANU GitLab</a>
<h1 id="project_title">The Mu Micro Virtual Machine<img src="images/macadamia.jpg"
width="40%" alt="Macadamia" align="right"></h1>
<h2 id="project_tagline">A Solid Foundation for Language Development</h2>
</header>
</div>
<!-- MAIN CONTENT -->
<div id="main_content_wrap" class="outer">
<section id="main_content" class="inner">
<h3>Useful Links</h3>
<p>We coined the concept of <em>micro virtual machines</em> for the
development of managed languages.</p>
<p>"Mu" is the name of our specific micro virtual machine. This project
has a specification and a reference implementation which are publicly
available:</p>
<ul>
<li><a href="https://gitlab.anu.edu.au/mu/mu-spec"><b>Mu Specification</b></a>: canonical information</li>
<li><a href="https://gitlab.anu.edu.au/mu/mu-impl-ref2"><b>Holstein (Mu reference implementation)</b></a>: a simple but slow implementation of the Mu specification in Scala</li>
<li><a href="https://gitlab.anu.edu.au/mu/mu-impl-fast"><b>Zebu (high performance Mu implementation)</b></a>: an implementation with a focus on performance (still in development)</li>
<li><a href="https://mu-tutorial.readthedocs.io/en/latest/"><b>Mu Tutorial</b></a>: a step-by-step guide</li>
<li><a href="https://gitlab.anu.edu.au/groups/mu"><b>The Micro Virtual Machine Project on ANU GitLab</b></a>: this includes many sub-projects</li>
<li><a href="https://gitlab.anu.edu.au/mu/general-issue-tracker/issues"><b>High-level Issue Tracker</b></a>: general discussions and questions not specific to any sub-project</li>
</ul>
<h3>Overview</h3>
<p>A large fraction of today’s software is written in <em>managed
languages</em>. These languages increase software productivity by
offering rich abstractions for managing memory, executing code
concurrently, and hiding the complexity of modern hardware. Examples
include JavaScript, PHP, Objective-C, Java, C#, Python, and Ruby. These
languages are economically important. Unfortunately, most of these
languages are inefficient, imposing overheads as large as a factor of
fifty compared to orthodox language choices such as C.</p>
<p>The project will define, develop, evaluate, and refine the essential
components of a new foundation layer for managed language
implementation. In doing so, it will address a key source of systemic
inefficiency, by pioneering <em>micro virtual machines</em> as an
efficient high-performance substrate for managed language
implementation. The relationship between a micro virtual machine and existing
managed language implementations is analogous to the one between an
operating system micro kernel and monolithic operating systems such as
Linux. A micro virtual machine 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, a micro virtual machine 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. This project will enable more efficient software and a
distinctly sharper focus for language implementation research and
development.</p>
<h3>Publications</h3>
<ul>
<li>
<span class="bib-author">Yi Lin</span>,
"<span class="bib-title">An efficient implementation of a micro virtual machine</span>",
<span class="bib-source">Ph.D. thesis, College of Engineering and Computer Science, The Australian National University</span>, 2019.
<a href="https://openresearch-repository.anu.edu.au/bitstream/1885/158122/1/Yi%20Lin%20Thesis%202019.pdf" title="Download pdf">pdf</a>
<a href="https://doi.org/10.25911/5ca1dad991dbf">url</a>
</li>
<li>
<span class="bib-author">K. Wang, S. M. Blackburn, A. L. Hosking, and M. Norrish</span>,
"<span class="bib-title">Hop, Skip, & Jump: Practical On-Stack Replacement for a Cross-Platform Language-Neutral VM</span>",
in <span class="bib-source">14th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE 2018)</span>, 2018.
<a href="https://wks.github.io/downloads/pdf/osr-vee-2018.pdf">pdf</a>
<a href="https://doi.org/10.1145/3186411.3186412">url</a>
</li>
<li>
<span class="bib-author">Kunshan Wang</span>,
"<span class="bib-title">Micro Virtual Machines: A Solid Foundation for Managed Language Implementation</span>",
<span class="bib-source">Ph.D. thesis, College of Engineering and Computer Science, The Australian National University</span>, 2017.
<a href="https://openresearch-repository.anu.edu.au/bitstream/1885/147871/1/Wang%20Thesis%202018.pdf" title="Download pdf">pdf</a>
<a href="http://hdl.handle.net/1885/147871">url</a>
</li>
<li>
<span class="bib-author">Y. Lin, S. M. Blackburn, A. L. Hosking, and M. Norrish</span>,
"<span class="bib-title">Rust as a Language for High Performance GC Implementation</span>",
in <span class="bib-source">Proceedings of the Sixteenth ACM SIGPLAN International Symposium on Memory Management, ISMM ‘16, Santa Barbara, CA, June 13, 2016</span>, 2016.
<a href="http://users.cecs.anu.edu.au/~steveb/downloads/pdf/rust-ismm-2016.pdf" title="Download pdf">pdf</a>
</li>
<li>
<span class="bib-author">Y. Lin, K. Wang, S. M. Blackburn, M. Norrish, and A. L. Hosking</span>,
"<span class="bib-title">Stop and Go: Understanding Yieldpoint Behavior</span>",
in <span class="bib-source">Proceedings of the Fourteenth ACM SIGPLAN International Symposium on Memory Management, ISMM ‘15, Portland, OR, June 14, 2015</span>, 2015.
<a href="http://users.cecs.anu.edu.au/~steveb/downloads/pdf/yieldpoint-ismm-2015.pdf" title="Download pdf">pdf</a>
</li>
<li>
<span class="bib-author">K. Wang, Y. Lin, S. M. Blackburn, M. Norrish, and A. L. Hosking</span>,
"<span class="bib-title">Draining the Swamp: Micro Virtual Machines as Solid Foundation for Language Development</span>",
in <span class="bib-source">1st Summit on Advances in Programming Languages (SNAPL 2015)</span>, 2015.
<a href="http://drops.dagstuhl.de/opus/volltexte/2015/5034/pdf/24.pdf">pdf</a>
<a href="http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=5034">url</a>
</li>
</ul>
</section>
</div>
<!-- FOOTER -->
<div id="footer_wrap" class="outer">
<footer class="inner">
<a href="http://www.nicta.com">
<img src="images/NICTA-logo.png" height="90px" alt="NICTA"
align="right"></a>
<a href="http://www.nsf.gov">
<img src="images/nsf4.jpg" height="90px" alt="NSF"
align="right"></a>
<a href="http://www.arc.gov.au">
<img src="images/ARC_stacked.png" height="90px" alt="NSF"
align="right"></a>
<p>Supported by: the Australian Research Council's Discovery Projects
funding scheme (project number DP140103878), the National Science
Foundation (grant numbers CCF-1408896 and CCF-1409284), and NICTA.</p>
</footer>
</div>
</body>
</html>