Fine-grained modularity and reuse of virtual machine components
|
|||||||||||||||||
ABSTRACTModularity is a key concept for large and complex applications and an important enabler for collaborative research. In comparison, virtual machines (VMs) are still mostly monolithic pieces of software. Our goal is to significantly reduce to the cost of extending VMs to efficiently host and execute multiple, dynamic languages. We are designing and implementing a VM following the "everything is extensible" paradigm. Among the novel use cases that will be enabled by our research are: VM extensions by third parties, support for multiple languages inside one VM, and a universal VM for mobile devices.
Our research will be based on the existing state of the art. We will reuse an existing metacircular Java VM and an existing dynamic language VM implemented in Java. We will split the VMs into fine-grained modules, define explicit interfaces and extension points for the modules, and finally re-connect them.
Performance is one of the most important concerns for VMs. Modularity improves flexibility but can introduce an unacceptable performance overhead at the module boundaries, e.g., for inter-module method calls. We will identify this overhead and address it with novel feedback-directed compiler optimizations. These optimizations will also improve the performance of modular applications running on top of our VM.
The expected results of our research will be not only new insights and a new design approach for VMs, but also a complete reference implementation of a modular VM where everything is extensible by third parties and that supports multiple languages.
AUTHORS
|
|
|||||||||||||||||||||||||||||||||||||||
| View colleagues of Christian Wimmer | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Stefan Brunthaler | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Per Larsen | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||
| View colleagues of Michael Franz | ||||||||||||||||||||||||||||||||||||||||
REFERENCESNote: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
|
1
|
A.-R. Adl-Tabatabai, J. Bharadwaj, D.-Y. Chen, A. Ghuloum, V. Menon, B. Murphy, M. Serrano, and T. Shpeisman. The StarJIT compiler: A dynamic compiler for managed runtime environments. phIntel Technology Journal, 7 (1): 19--31, 2003.
|
|
|
2
|
B. Alpern , C. R. Attanasio , J. J. Barton , M. G. Burke , P. Cheng , J.-D. Choi , A. Cocchi , S. J. Fink , D. Grove , M. Hind , S. F. Hummel , D. Lieber , V. Litvinov , M. F. Mergen , T. Ngo , J. R. Russell , V. Sarkar , M. J. Serrano , J. C. Shepherd , S. E. Smith , V. C. Sreedhar , H. Srinivasan , J. Whaley, The Jalapeño virtual machine, IBM Systems Journal, v.39 n.1, p.211-238, January 2000 [doi>10.1147/sj.391.0211]
|
|
|
3
|
Apache. phApache Harmony, Dynamic Runtime Layer Virtual Machine, 2010. http://harmony.apache.org/subcomponents/drlvm/.
|
|
|
4
|
C. Chambers. The Cecil language specification and rationale, version 3.0. Technical report, Department of Computer Science and Engineering, University of Washington, 1998.
|
|
| |
5
|
C. Chambers , D. Ungar , E. Lee, An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes, Conference proceedings on Object-oriented programming systems, languages and applications, p.49-70, October 02-06, 1989, New Orleans, Louisiana, USA [doi>10.1145/74877.74884]
|
|
6
|
||
| |
7
|
|
|
8
|
Dynamic Language Runtime. Dynamic Language Runtime, 2010. http://dlr.codeplex.com/.
|
|
|
9
|
N. Geoffray, G. Thomas, G. Muller, P. Parrend, S. Frénot, and B. Folliot. I-JVM: a Java virtual machine for component isolation in OSGi. In Proceedings of the International Conference on Dependable Systems and Networks, pages 544--553. IEEE Computer Society, 2009. 10.1109/DSN.2009.5270296.
|
|
|
10
|
||
|
11
|
T. L. Harris. phExtensible Virtual Machines. PhD thesis, Computer Laboratory, University of Cambridge, UK, 2001.
|
|
|
12
|
M. Haupt, B. Adams, S. Timbermont, C. Gibbs, Y. Coady, and R. Hirschfeld. Disentangling virtual machine architecture. IET Software, 3: 201--218, 2009. 10.1049/iet-sen.2007.0121.
|
|
|
13
|
M. Haupt, S. Marr, and R. Hirschfeld. CSOM/PL - A virtual machine product line. Journal of Object Technology, 10: 12:1--30, 2011. 10.5381/jot.2011.10.1.a12.
|
|
| |
14
|
Dan Ingalls , Ted Kaehler , John Maloney , Scott Wallace , Alan Kay, Back to the future: the story of Squeak, a practical Smalltalk written in itself, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.318-326, October 05-09, 1997, Atlanta, Georgia, USA [doi>10.1145/263698.263754]
|
|
15
|
Java Specification Request 223. Java Specification Request 223: Scripting for the Java#8482; Platform, 2006. http://www.jcp.org/en/jsr/detail?id=223.
|
|
|
16
|
Jikes. Jikes RVM, 2010. http://www.jikesrvm.org/.
|
|
|
17
|
JRuby. JRuby, 2010. http://www.jruby.org/.
|
|
|
18
|
Jython. Jython, 2010. http://www.jython.org//.
|
|
| |
19
|
|
|
20
|
Maxine. Maxine Research Virtual Machine, 2010. https://wikis.oracle.com/display/MaxineVM/.
|
|
|
21
|
J. McCarthy. History of LISP. In Proceedings of History of Programming Languages, pages 173--185. ACM Press, 1978. 10.1145/960118.808387.
|
|
|
22
|
Oracle. The Java HotSpot Performance Engine Architecture, 2006. http://www.oracle.com/technetwork/java/whitepaper-135217.html.
|
|
|
23
|
ORP. Open Runtime Platform, 2010. Intel Corp. http://sourceforge.net/projects/orp/.
|
|
|
24
|
OSGi. OSGi - The Dynamic Module System for Java, 2010. http://www.osgi.org/.
|
|
|
25
|
||
|
26
|
S. Pemberton and M. Daniels. Pascal Implementation: The P4 Compiler and Interpreter. Ellis Horwood, 1983.
|
|
|
27
|
Rhino. Rhino: JavaScript for Java, 2010. http://www.mozilla.org/rhino/.
|
|
| |
28
|
|
| |
29
|
|
|
30
|
||
| |
31
|
|
| |
32
|
David Ungar , Adam Spitz , Alex Ausch, Constructing a metacircular Virtual machine in an exploratory programming environment, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA [doi>10.1145/1094855.1094865]
|
|
33
|
N. Wirth and J. Gutknecht. Project Oberon. Addison-Wesley, 1992.
|
CITED BY2 Citations
|
|
|
|
|
INDEX TERMSThe ACM Computing Classification System (CCS rev.2012)
PUBLICATION| Title | AOSD '12 Proceedings of the 11th annual international conference on Aspect-oriented Software Development table of contents | ||||||||||||||||||||||||||||||||||||||||||||||
| Conference Chairs | Michael Haupt Oracle Labs, Potsdam, Germany | ||||||||||||||||||||||||||||||||||||||||||||||
| General Chairs | Robert Hirschfeld Hasso-Plattner-Institut, University of Potsdam, Germany | ||||||||||||||||||||||||||||||||||||||||||||||
| Program Chairs | Éric Tanter Universidad de Chile, Chile | ||||||||||||||||||||||||||||||||||||||||||||||
| Kevin J. Sullivan University of Virginia, USA | |||||||||||||||||||||||||||||||||||||||||||||||
| Richard P. Gabriel IBM Research, USA | |||||||||||||||||||||||||||||||||||||||||||||||
| Pages | 203-214 | ||||||||||||||||||||||||||||||||||||||||||||||
| Publication Date | 2012-03-25 (yyyy-mm-dd) | ||||||||||||||||||||||||||||||||||||||||||||||
| Sponsors | SIGPLAN ACM Special Interest Group on Programming Languages | ||||||||||||||||||||||||||||||||||||||||||||||
| SIGSOFT ACM Special Interest Group on Software Engineering | |||||||||||||||||||||||||||||||||||||||||||||||
| In-Cooperations | AOSA Aspect-Oriented Software Association | ||||||||||||||||||||||||||||||||||||||||||||||
| Publisher | ACM New York, NY, USA ©2012 | ||||||||||||||||||||||||||||||||||||||||||||||
| ISBN: 978-1-4503-1092-5 doi>10.1145/2162049.2162073 | |||||||||||||||||||||||||||||||||||||||||||||||
| Conference |
MODULARITYModularity (formerly known as Aspect-oriented Software Development - AOSD)
|
||||||||||||||||||||||||||||||||||||||||||||||
| Paper Acceptance Rate 20 of 79 submissions, 25% | |||||||||||||||||||||||||||||||||||||||||||||||
| Overall Acceptance Rate 178 of 718 submissions, 25% | |||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
REVIEWS
COMMENTSBe the first to comment To Post a comment please sign in or create a free Web account
Table of Contents| SESSION: Features | ||
| Session details: Features | ||
| David Lorenz | ||
| doi>10.1145/3256430 | ||
| Separation of concerns in feature modeling: support and applications | ||
| Mathieu Acher, Philippe Collet, Philippe Lahire, Robert B. France | ||
| Pages: 1-12 | ||
| doi>10.1145/2162049.2162051 | ||
Full text: PDF
|
||
|
Feature models (FMs) are a popular formalism for describing the commonality and variability of software product lines (SPLs) in terms of features. SPL development increasingly involves manipulating many large FMs, and thus scalable modular techniques ...
expand
|
||
| Intraprocedural dataflow analysis for software product lines | ||
| Claus Brabrand, Márcio Ribeiro, Társis Tolêdo, Paulo Borba | ||
| Pages: 13-24 | ||
| doi>10.1145/2162049.2162052 | ||
Full text: PDF
|
||
|
Software product lines (SPLs) are commonly developed using annotative approaches such as conditional compilation that come with an inherent risk of constructing erroneous products. For this reason, it is essential to be able to analyze SPLs. However, ...
expand
|
||
| Features and object capabilities: reconciling two visions of modularity | ||
| Salman Saghafi, Kathi Fisler, Shriram Krishnamurthi | ||
| Pages: 25-34 | ||
| doi>10.1145/2162049.2162053 | ||
Full text: PDF
|
||
|
The prevalence of threats and attacks in modern systems demands programming techniques that help developers maintain security and privacy. In particular, frameworks for composing components written by multiple parties must enable the authors of each ...
expand
|
||
| SESSION: Debugging | ||
| Session details: Debugging | ||
| Wouter Joosen | ||
| doi>10.1145/3256431 | ||
| Two-way traceability and conflict debugging for AspectLTL programs | ||
| Shahar Maoz, Yaniv Sa'ar | ||
| Pages: 35-46 | ||
| doi>10.1145/2162049.2162055 | ||
Full text: PDF
|
||
|
Tracing program actions back to the concerns that have caused them and blaming specific code artifacts for concern interference are known challenges of AOP and related advanced modularity paradigms. In this work we address these challenges in the context ...
expand
|
||
| A debug interface for debugging multiple domain specific aspect languages | ||
| Yoav Apter, David H. Lorenz, Oren Mishali | ||
| Pages: 47-58 | ||
| doi>10.1145/2162049.2162056 | ||
Full text: PDF
|
||
|
Research in the area of multi-DSAL development has been mainly devoted to enabling the interoperability of multiple aspect mechanisms. Less attention has been given to making programming with multiple aspect languages practical. For domain specific aspect ...
expand
|
||
| A fine-grained debugger for aspect-oriented programming | ||
| Haihan Yin, Christoph Bockisch, Mehmet Aksit | ||
| Pages: 59-70 | ||
| doi>10.1145/2162049.2162057 | ||
Full text: PDF
|
||
|
To increase modularity, aspect-oriented programming provides a mechanism based on implicit invocation: An aspect can influence runtime behavior of other modules without the need that these modules refer to the aspect. Recent studies show that a significant ...
expand
|
||
| SESSION: Languages | ||
| Session details: Languages | ||
| Mario Südholt | ||
| doi>10.1145/3256432 | ||
| A monadic interpretation of execution levels and exceptions for AOP | ||
| Nicolas Tabareau | ||
| Pages: 71-82 | ||
| doi>10.1145/2162049.2162059 | ||
Full text: PDF
|
||
|
Aspect-Oriented Programming (AOP) started fifteen years ago with the remark that modularization of so-called crosscutting functionalities is a fundamental problem for the engineering of large-scale applications. Originating at Xerox PARC, this observation ...
expand
|
||
| Adaptable generic programming with required type specifications and package templates | ||
| Eyvind W. Axelsen, Stein Krogdahl | ||
| Pages: 83-94 | ||
| doi>10.1145/2162049.2162060 | ||
Full text: PDF
|
||
|
The aim of this work is to provide better support for adaption and refinement of generic code. This type of flexibility is desirable in order to fully reap the potential of generic programming. Our proposal for an improved mechanism is an extension to ...
expand
|
||
| Do we really need to extend syntax for advanced modularity? | ||
| Shigeru Chiba, Michihiro Horie, Kei Kanazawa, Fuminobu Takeyama, Yuuki Teramoto | ||
| Pages: 95-106 | ||
| doi>10.1145/2162049.2162061 | ||
Full text: PDF
|
||
|
For every new language construct (or abstraction), we have been always developing new syntax. Is this a right approach? In this paper, we propose that, if we develop a new language construct for advanced modularity, we should consider the use of dynamic ...
expand
|
||
| SESSION: Interference | ||
| Session details: Interference | ||
| Hidehiko Masuhara | ||
| doi>10.1145/3256433 | ||
| A closer look at aspect interference and cooperation | ||
| Cynthia Disenfeld, Shmuel Katz | ||
| Pages: 107-118 | ||
| doi>10.1145/2162049.2162063 | ||
Full text: PDF
|
||
|
In this work we consider specification and compositional verification for interference detection when several aspects are woven together under joint-weaving semantics without recursion. In this semantics, whenever a joinpoint of an aspect is reached, ...
expand
|
||
| Management of feature interactions with transactional regions | ||
| Thomas Cottenier, Aswin van den Berg, Thomas Weigert | ||
| Pages: 119-130 | ||
| doi>10.1145/2162049.2162064 | ||
Full text: PDF
|
||
|
This paper presents a modeling language to modularize the features of a system using orthogonal regions and to man-age the interactions between these features. Orthogonal regions are a language construct to structure a state ma-chine into a set of semi-independent ...
expand
|
||
| Method shelters: avoiding conflicts among class extensions caused by local rebinding | ||
| Shumpei Akai, Shigeru Chiba | ||
| Pages: 131-142 | ||
| doi>10.1145/2162049.2162065 | ||
Full text: PDF
|
||
|
A class extension, also known as open classes, allows programmers to modify existing classes and thus it is supported by several programming languages. However, class extensions imply a risk that they supply different definitions for the same method ...
expand
|
||
| SESSION: Empirical | ||
| Session details: Empirical | ||
| Stefan Udo Hanenberg | ||
| doi>10.1145/3256434 | ||
| An exploratory study of the design impact of language features for aspect-oriented interfaces | ||
| Robert Dyer, Hridesh Rajan, Yuanfang Cai | ||
| Pages: 143-154 | ||
| doi>10.1145/2162049.2162067 | ||
Full text: PDF
|
||
|
A variety of language features to modularize crosscutting concerns have recently been discussed, e.g. open modules, annotation-based pointcuts, explicit join points, and quantified-typed events. All of these ideas are essentially a form of aspect-oriented ...
expand
|
||
| Comprehensively evaluating conformance error rates of applying aspect state machines | ||
| Shaukat Ali, Tao Yue, Zafar Iqbal Malik | ||
| Pages: 155-166 | ||
| doi>10.1145/2162049.2162068 | ||
Full text: PDF
|
||
|
Aspect Oriented Modeling (AOM) aims to provide enhanced separation of concerns during the design phase and proclaims many benefits (e.g., easier model evolution, reduced modeling effort, and reduced modeling errors) over traditional modeling paradigms ...
expand
|
||
| Are automatically-detected code anomalies relevant to architectural modularity?: an exploratory analysis of evolving systems | ||
| Isela Macia, Joshua Garcia, Daniel Popescu, Alessandro Garcia, Nenad Medvidovic, Arndt von Staa | ||
| Pages: 167-178 | ||
| doi>10.1145/2162049.2162069 | ||
Full text: PDF
|
||
|
As software systems are maintained, their architecture modularity often degrades through architectural erosion and drift. More directly, however, the modularity of software implementations degrades through the introduction of code anomalies, informally ...
expand
|
||
| SESSION: Modularity in systems software | ||
| Session details: Modularity in systems software | ||
| Michael Haupt | ||
| doi>10.1145/3256435 | ||
| LARA: an aspect-oriented programming language for embedded systems | ||
| João M.P. Cardoso, Tiago Carvalho, José G.F. Coutinho, Wayne Luk, Ricardo Nobre, Pedro Diniz, Zlatko Petrov | ||
| Pages: 179-190 | ||
| doi>10.1145/2162049.2162071 | ||
Full text: PDF
|
||
|
The development of applications for high-performance embedded systems is typically a long and error-prone process. In addition to the required functions, developers must consider various and often conflicting non-functional application requirements such ...
expand
|
||
| ContextErlang: introducing context-oriented programming in the actor model | ||
| Guido Salvaneschi, Carlo Ghezzi, Matteo Pradella | ||
| Pages: 191-202 | ||
| doi>10.1145/2162049.2162072 | ||
Full text: PDF
|
||
|
Self-adapting systems are becoming widespread in emerging fields such as autonomic, mobile and ubiquitous computing. Context-oriented programming (COP) is a promising language-level solution for the implementation of context-aware, self-adaptive software. ...
expand
|
||
| Fine-grained modularity and reuse of virtual machine components | ||
| Christian Wimmer, Stefan Brunthaler, Per Larsen, Michael Franz | ||
| Pages: 203-214 | ||
| doi>10.1145/2162049.2162073 | ||
Full text: PDF
|
||
|
Modularity is a key concept for large and complex applications and an important enabler for collaborative research. In comparison, virtual machines (VMs) are still mostly monolithic pieces of software. Our goal is to significantly reduce to the cost ...
expand
|
||
| SESSION: Implementing languages | ||
| Session details: Implementing languages | ||
| Eric Bodden | ||
| doi>10.1145/3256436 | ||
| An object-oriented framework for aspect-oriented languages | ||
| Marko van Dooren, Eric Steegmans, Wouter Joosen | ||
| Pages: 215-226 | ||
| doi>10.1145/2162049.2162075 | ||
Full text: PDF
|
||
|
Aspect-orientation is a mechanism for modularizing cross-cutting concerns that has been added to many existing software engineering languages. The implementations of aspect-oriented language extensions, however, are typically tied to a specific base ...
expand
|
||
| Reusing non-functional concerns across languages | ||
| Myoungkyu Song, Eli Tilevich | ||
| Pages: 227-238 | ||
| doi>10.1145/2162049.2162076 | ||
Full text: PDF
|
||
|
Emerging languages are often source-to-source compiled to mainstream ones, which offer standardized, fine-tuned implementations of non-functional concerns (NFCs)-including persistence, security, transactions, and testing. Because these NFCs are specified ...
expand
|
||
| DiSL: a domain-specific language for bytecode instrumentation | ||
| Lukáš Marek, Alex Villazón, Yudi Zheng, Danilo Ansaloni, Walter Binder, Zhengwei Qi | ||
| Pages: 239-250 | ||
| doi>10.1145/2162049.2162077 | ||
Full text: PDF
|
||
|
Many dynamic analysis tools for programs written in managed languages such as Java rely on bytecode instrumentation. Tool development is often tedious because of the use of low-level bytecode manipulation libraries. While aspect-oriented programming ...
expand
|
||
| SESSION: Architecture and design | ||
| Session details: Architecture and design | ||
| Mira Mezini | ||
| doi>10.1145/3256437 | ||
| Multi-view refinement of AO-connectors in distributed software systems | ||
| Steven Op de beeck, Marko van Dooren, Bert Lagaisse, Wouter Joosen | ||
| Pages: 251-262 | ||
| doi>10.1145/2162049.2162079 | ||
Full text: PDF
|
||
|
This paper presents MView, a technique that enables the separation of various developer stakeholder views on an architectural connector in distributed software systems. While state-of-the-art AO-ADLs focus on describing compositions using aspect-based ...
expand
|
||
| Weaving semantic aspects in HiLA | ||
| Gefei Zhang, Matthias Hölzl | ||
| Pages: 263-274 | ||
| doi>10.1145/2162049.2162080 | ||
Full text: PDF
|
||
|
UML state machines are widely used for modeling software behavior. Due to the low-level character of the language, UML state machines are often poorly modularized and hard to use. High-Level Aspects (HiLA) is an aspect-oriented extension of UML state ...
expand
|
||