[pypy-svn] r43578 - pypy/extradoc/talk/dyla2007
arigo at codespeak.net
arigo at codespeak.net
Wed May 23 17:24:33 CEST 2007
Author: arigo
Date: Wed May 23 17:24:33 2007
New Revision: 43578
Modified:
pypy/extradoc/talk/dyla2007/dyla.txt
Log:
Finished the introduction.
Modified: pypy/extradoc/talk/dyla2007/dyla.txt
==============================================================================
--- pypy/extradoc/talk/dyla2007/dyla.txt (original)
+++ pypy/extradoc/talk/dyla2007/dyla.txt Wed May 23 17:24:33 2007
@@ -68,10 +68,33 @@
----------------------------------------------------
The question is thus how the increased benefits of reusing
-object-oriented virtual machines (OO VM) can be balanced against the
+object-oriented virtual machines (OO VMs) can be balanced against the
fact that this introduces new implementations which may split the total
-effort of the community in pieces, and get increasingly
+effort of the community in pieces that get increasingly
resource-consuming to keep in sync with each other.
-Standardizing on one OO VM would further increase interoperability
-and avoid the division-of-efforts issue. (to be continued)
+Standardizing on one OO VM would further increase interoperability and
+avoid the division-of-efforts issue. In our opinion, though, a single
+OO VM for everybody is not a practical idea; we consider the loss of
+diversity to be more a problem than a solution, and any single OO VM
+comes with limitations and trade-offs that may not be optimal for every
+use case.
+
+The argument we will make in the present paper is that it is possible to
+benefit from and integrate with OO VMs while keeping the dynamic
+language implemented by a single, simple source code base. The idea is
+to write an interpreter for that language in another sufficiently
+high-level but less dynamic language. This interpreter plays the role
+of a specification for the dynamic language. With a good enough
+translation toolchain we can then generate whole virtual machines from
+this specification - either full custom VMs for C-level operating
+systems, or layers on top of various OO VMs. In other words,
+metaprogramming techniques can be used to successfully replace a
+foreseeable one-VM-fits-all standardization attempt.
+
+The argument boils down to: VMs for dynamic languages should not be
+written by hand! The justification is based on the successful
+completion of the PyPy project, which proves that the approach is
+feasible in practice. Just as importantly, it also brings new insights
+and concrete benefits in term of flexibility and performance that go
+beyond the state of the art.
More information about the pypy-svn
mailing list