[pypy-svn] r45331 - pypy/extradoc/talk/dyla2007
arigo at codespeak.net
arigo at codespeak.net
Wed Jul 25 20:50:44 CEST 2007
Author: arigo
Date: Wed Jul 25 20:50:43 2007
New Revision: 45331
Modified:
pypy/extradoc/talk/dyla2007/talk.tex
Log:
Some reshuffling of the first few slides of the PyPy part.
Modified: pypy/extradoc/talk/dyla2007/talk.tex
==============================================================================
--- pypy/extradoc/talk/dyla2007/talk.tex (original)
+++ pypy/extradoc/talk/dyla2007/talk.tex Wed Jul 25 20:50:43 2007
@@ -275,16 +275,27 @@
\begin{frame}
\frametitle{PyPy's Approach to VM Construction}
+ \emph{Goal: achieve flexibility, simplicity and performance together}
+
\begin{itemize}
\item
- Goal: achieve flexibility, simplicity and performance all at one
- \item
Approach: auto-generate VMs from high-level descriptions of the language
\item
- ... using meta-programming techniques and aspects (in the original sense)
+ ... using meta-programming techniques and \emph{aspects}
+ \item
+ high-level description: an interpreter written in a high-level language
+ \item
+ ... which we translate (i.e.\ compile) to VMs running on top of various
+ targets, like C/Posix, CLR, JVM
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{PyPy}
+ \begin{itemize}
\item
- high-level description of the language done by writing an interpreter in
- RPython
+ PyPy = Python interpreter written in RPython + translation toolchain
+ for RPython
\end{itemize}
\pause
\begin{block}{
@@ -296,6 +307,9 @@
subset chosen in such a way that type-inference can be performed
\item
still a high-level language (unlike SLang or Prescheme)
+ \item
+ ...really a subset, can't give a small example of code that
+ doesn't just look like Python :-)
\end{itemize}
\end{block}
\end{frame}
@@ -304,20 +318,24 @@
\frametitle{Auto-generating VMs}
\begin{itemize}
\item
- interpreters written in RPython can be translated to various targets:
- C/Posix, CLR, JVM
+ high-level source: early design decisions not necessary
+ \item
+ we need a custom \emph{translation toolchain} to compile the interpreter
+ to a full VM
\item
- VMs generated by a flexible translation toolchain (really a compiler)
+ many aspects of the final VM are orthogonal from the interpreter source:
+ they are inserted during translation
+ \item
+ ``monads'', with more ad-hoc control
\end{itemize}
+ \pause
\begin{block}{
- Translation Aspects}
+ Examples}
\begin{itemize}
\item
- the translation toolchain weaves in various aspect into the generated VM
- \item
- examples: GC strategy, threading model
+ Garbage Collection strategy
\item
- early design decisions not necessary
+ Threading models (e.g.\ coroutines with CPS...)
\item
non-trivial translation aspect: auto-generating a dynamic compiler from
the interpreter % XXX maybe we really want to write more about this
@@ -329,7 +347,7 @@
\frametitle{Good Points of the Approach}
\begin{itemize}
\item
- dynamic languages can implemented in a high level language
+ dynamic languages can be implemented in a high level language
\item
doing this separates high-level from low-level concerns
\item
More information about the Pypy-commit
mailing list