[pypy-svn] r43730 - pypy/extradoc/talk/dyla2007
arigo at codespeak.net
arigo at codespeak.net
Sun May 27 17:39:00 CEST 2007
Author: arigo
Date: Sun May 27 17:38:59 2007
New Revision: 43730
Modified:
pypy/extradoc/talk/dyla2007/dyla.tex
Log:
Conclusion.
Modified: pypy/extradoc/talk/dyla2007/dyla.tex
==============================================================================
--- pypy/extradoc/talk/dyla2007/dyla.tex (original)
+++ pypy/extradoc/talk/dyla2007/dyla.tex Sun May 27 17:38:59 2007
@@ -386,6 +386,11 @@
include the spectacular speed-ups obtained in some cases by the JIT compiler
described in section \ref{subsect:dynamic_compilers}.
+In the sequel, we will focus on the relative advantages and
+inconvenients of the PyPy approach compared to the approach of
+hand-writing a language implementation on top of an OO VM.
+
+
\subsection{A single source}
Our approach -- a single ``meta-written'' implementation -- naturally
@@ -529,9 +534,57 @@
information.
-
\section{Conclusion}
-XXX
+
+Here are the two central points that we have asserted in the present
+paper:
+
+\begin{itemize}
+\item \emph{Do not write dynamic language implementations ``by hand''.}
+Writing them more abstractly, at a higher level, has mostly only
+advantages, among them avoiding a proliferation of implementations
+growing out of sync. Writing interpreters both flexibly and efficiently
+is difficult, and meta-programming is a good way to achieve it.
+Moreover, this is not incompatible with targetting and benefiting from
+existing good object-oriented virtual machines like the Java and .NET
+ones.
+
+\item \emph{Do not write VMs ``by hand''.}
+Writing language-specific virtual machines is a time-consuming task for
+medium to large languages. Unless large amounts of resources can be
+invested, the resulting VMs are bound to have limitations which lead to
+the emergence of many implementations, a fact that is taxing precisely
+for a community with limited resources. (This is of course even more
+true for general-purpose VMs.)
+\end{itemize}
+
+As a better alternative, we advocate a more general usage of
+meta-programming:
+
+\begin{itemize}
+\item \emph{Let's write more meta-programming translation toolchains.}
+Aside from the advantages described in section
+\ref{sect:metaprogramming}, a translation toolchain need not be
+standardized for inter-operability, but can be tailored to the needs of
+each project. Diversity is good; there is no need to attempt to
+standardize on a single OO VM.
+\end{itemize}
+
+The approach we outlined is actually just one in a very large, mostly
+unexplored design space; it is likely that some of the choices made in
+PyPy will turn out to be suboptimal. We are hoping that other
+toolchains will emerge over time, exploring other aspects and proposing
+other solutions. By their ``meta'' nature, these multiple approachs
+should be easier to bridge together than, say, multiple OO VMs with
+different object and runtime models. We believe that further research
+in this area might open the door to better solutions for
+interoperability in general -- e.g. high-level bridges instead of
+(virtual-)machine-level ones, enabled by cross-translation.
+
+We believe this to be ultimately a better investment of efforts than the
+development of more advanced general-purpose OO VMs.
+
+
% ---- Bibliography ----
%\begin{small}
\bibliographystyle{abbrv}
More information about the pypy-svn
mailing list