Challenging problems in partial evaluation and mixed computation
New Generation Computing - Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
On abstraction and the expressive power of programming languages
TACS'91 Selected papers of the conference on Theoretical aspects of computer software
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Communications of the ACM
Formal requirements for virtualizable third generation architectures
Communications of the ACM
Definitional Interpreters for Higher-Order Programming Languages
Higher-Order and Symbolic Computation
Protection in Programming-Language Translations
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
Foundational Proof-Carrying Code
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Xen and the art of virtualization
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Transformation by interpreter specialisation
Science of Computer Programming - Special issue on program transformation
A comparison of software and hardware techniques for x86 virtualization
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
First-class nonstandard interpretations by opening closures
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design)
Securing the .NET programming model
Theoretical Computer Science - Applied semantics
Dynamic instrumentation of production systems
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
Valgrind: a framework for heavyweight dynamic binary instrumentation
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Analysis of the Intel Pentium's ability to support a secure virtual machine monitor
SSYM'00 Proceedings of the 9th conference on USENIX Security Symposium - Volume 9
Compatibility is not transparency: VMM detection myths and realities
HOTOS'07 Proceedings of the 11th USENIX workshop on Hot topics in operating systems
Tagging, encoding, and jones optimality
ESOP'03 Proceedings of the 12th European conference on Programming
On jones-optimal specializers: a case study using unmix
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
An investigation of Jones optimality and BTI-universal specializers
Higher-Order and Symbolic Computation
Embedded Probabilistic Programming
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Language virtualization for heterogeneous parallel computing
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Formally efficient program instrumentation
RV'10 Proceedings of the First international conference on Runtime verification
Hi-index | 0.00 |
The growing popularity of hardware virtualization (VMware and Xen being two prominent implementations) leads us to examine the common ground between this yet-again vibrant technology and partial evaluation. A virtual machine executes on host hardware and presents to its guest program a replica of that host environment, complete with CPU, memory, and I/O devices. A virtual machine can be seen as a self-interpreter. A program specializer is considered Jones-optimal if it is capable of removing a layer of interpretational overhead. We propose a formulation of Jones optimality which coincides with a well-known virtualization efficiency criterion. A fully abstract programming language translation (an idea put forward by Abadi) is one that preserves program equivalences. We may translate a program by specializing a self-interpreter with respect to it. We argue that full abstraction for such translations captures the notion of transparency (whether or not a program can determine if it is running on a virtual machine) in virtual machine folklore. We hope that this discussion will encourage wider exchange of ideas between the virtualization and partial evaluation communities.