arigo at codespeak.net arigo at codespeak.net
Fri Apr 17 18:55:51 CEST 2009

Author: arigo
Date: Fri Apr 17 18:55:51 2009
New Revision: 64295

Log:
Add this file, mostly extracted from the directories icooolps2009*.

==============================================================================
--- (empty file)
+++ pypy/extradoc/talk/bibtex.bib	Fri Apr 17 18:55:51 2009
@@ -0,0 +1,116 @@
+
+ at Article{PyPyTracing,
+ author = {Carl Friedrich Bolz and Antonio Cuni and Armin Rigo and Maciej Fijalkowski},
+ title = {Tracing the Meta-Level: PyPy's Tracing JIT Compiler},
+ journal = {\emph{Submitted to} ICOOOLPS'09},
+ }
+
+ at Article{antocuni_2009,
+ author = {Antonio Cuni and Davide Ancona and Armin Rigo},
+ title = {Faster than {C}\#: Efficient Implementation of Dynamic Languages on {.NET}},
+ journal = {\emph{Submitted to} ICOOOLPS'09},
+ }
+
+ at phdthesis{carl_friedrich_bolz_automatic_2008,
+    type = {Master Thesis},
+    title = {Automatic {JIT} Compiler Generation with Runtime Partial Evaluation
+},
+    school = {{Heinrich-Heine-UniversitÃ¤t} DÃ¼sseldorf},
+    author = {Carl Friedrich Bolz},
+    year = {2008}
+},
+
+ at inproceedings{ancona_rpython:dls_2007,
+    title = {{RPython:} A Step towards Reconciling Dynamically and Statically Typed {OO} Languages},
+    isbn = {978-1-59593-868-8},
+    url = {http://portal.acm.org/citation.cfm?id=1297091},
+    doi = {10.1145/1297081.1297091},
+    abstract = {Although the C-based interpreter of Python is reasonably fast, implementations on the {CLI} or the {JVM} platforms offers some advantages in terms of robustness and interoperability. Unfortunately, because the {CLI} and {JVM} are primarily designed to execute statically typed, object-oriented languages, most dynamic language implementations cannot use the native bytecodes for common operations like method calls and exception handling; as a result, they are not able to take full advantage of the power offered by the {CLI} and {JVM.}},
+    booktitle = {Proceedings of the 2007 Symposium on Dynamic Languages},
+    publisher = {{ACM}},
+    author = {Davide Ancona and Massimo Ancona and Antonio Cuni and Nicholas D. Matsakis},
+    year = {2007},
+    pages = {53--64}
+},
+
+ at techreport{armin_rigo_jit_2007,
+    title = {{JIT} Compiler Architecture},
+    url = {http://codespeak.net/pypy/dist/pypy/doc/index-report.html},              abstract = {{PyPyâ~@~Ys} translation tool-chain â~@~S from the interpreter written in {RPython} to generated {VMs} for low-level platforms â~@~S is now able to extend those {VMs} with an automatically generated dynamic compiler, derived from the interpreter. This is achieved by a pragmatic application of partial evaluation techniques guided by a few hints added to the source of the interpreter. Crucial for the effectiveness of dynamic compilation is the use of run-time information to improve compilation results: in our approach, a novel powerful primitive called â~@~\promotionâ~@~] that â~@~\promotesâ~@~] run-time values to compile-time is used to that effect. In this report, we describe it along with other novel techniques that allow the approach to scale to something as large as {PyPyâ~@~Ys} Python interpreter.},
+    number = {D08.2},
+    institution = {{PyPy}},
+    author = {Armin Rigo and Samuele Pedroni},
+    month = may,
+    year = {2007}
+},
+
+ at inproceedings{camillo_bruni_pygirl:_2009,
+    title = {{PyGirl:} Generating {Whole-System} {VMs} from {High-Level} Prototypes using {PyPy}},
+    booktitle = {Tools, accepted for publication},
+    author = {Camillo Bruni and Toon Verwaest},
+    year = {2009},
+},
+
+ at inproceedings{RiBo07_223,
+ author = {Armin Rigo and Carl Friedrich Bolz},
+ title = {{How to not write Virtual Machines for Dynamic Languages
+}},
+ booktitle = {Proceeding of Dyla 2007},
+ abstract = {Typical modern dynamic languages have a growing number of
+                  implementations. We explore the reasons for this situation,
+                  and the limitations it imposes on open source or academic
+                  communities that lack the resources to fine-tune and
+                  maintain them all. It is sometimes proposed that
+                  implementing dynamic languages on top of a standardized
+                  general-purpose ob ject-oriented virtual machine (like Java
+                  or .NET) would help reduce this burden. We propose a
+                  complementary alternative to writing custom virtual machine
+                  (VMs) by hand, validated by the PyPy pro ject: flexibly
+                  generating VMs from a high-level specification, inserting
+                  features and low-level details automatically â€“ including
+                  good just-in-time compilers tuned to the dynamic language at
+                  hand.  We believe this to be ultimately a better investment
+                  of efforts than the development of more and more advanced
+                  general-purpose object oriented VMs. In this paper we
+                  compare these two approaches in detail.},
+pages = {--},
+ year = {2007},
+}
+
+ at inproceedings{rigo_representation-based_2004,
+    title = {Representation-Based Just-in-Time Specialization and the Psyco Prototype for Python},
+    isbn = {1-58113-835-0},
+    url = {http://portal.acm.org/citation.cfm?id=1014010},
+    doi = {10.1145/1014007.1014010},
+    abstract = {A powerful application of specialization is to remove interpretative overhead: a language can be implemented with an interpreter, whose performance is then improved by specializing it for a given program source. This approach is only moderately successful with very high level languages, where the operation of each single step can be highly dependent on run-time data and context. In the present paper, the Psyco prototype for the Python language is presented. It introduces two novel techniques. The first is just-in-time specialization, or specialization by need, which introduces the "unlifting" ability for a value to be promoted from run-time to compile-time during specialization -- the inverse of the lift operator of partial evaluation. Its presence gives an unusual and powerful perspective on the specialization process. The second technique is representations, a theory of data-oriented specialization generalizing the traditional specialization domains (i.e. the compile-time/run-time dichotomy).},
+    booktitle = {Proceedings of the 2004 {ACM} {SIGPLAN} Symposium on Partial Evaluation and Semantics-Based Program Manipulation},
+    publisher = {{ACM}},
+    author = {Armin Rigo},
+    year = {2004},
+    pages = {15--26}
+},
+
+ at inbook{bolz_back_2008,
+    title = {Back to the Future in One Week â~@~T Implementing a Smalltalk {VM} in {PyPy}},
+    url = {http://dx.doi.org/10.1007/978-3-540-89275-5_7},
+    abstract = {We report on our experiences with the Spy project, including implementation details and benchmark results. Spy is a re-implementation of the Squeak (i.e. Smalltalk-80) {VM} using the {PyPy} toolchain. The {PyPy} project allows code written in {RPython,} a subset of Python, to be translated
+to a multitude of different backends and architectures. During the translation, many aspects of the implementation can be
+independently tuned, such as the garbage collection algorithm or threading implementation. In this way, a whole host of interpreters
+can be derived from one abstract interpreter definition. Spy aims to bring these benefits to Squeak, allowing for greater portability and, eventually, improved performance. The current
+Spy codebase is able to run a small set of benchmarks that demonstrate performance superior to many similar Smalltalk {VMs,} but
+which still run slower than in Squeak itself. Spy was built from scratch over the course of a week during a joint {Squeak-PyPy} Sprint in Bern last autumn.
+},
+    booktitle = {{Self-Sustaining} Systems},
+    author = {Carl Friedrich Bolz and Adrian Kuhn and Adrian Lienhard and Nicholas Matsakis and Oscar Nierstrasz and Lukas Renggli and Armin Rigo and Toon Verwaest},
+    year = {2008},
+    pages = {123--139}
+},
+
+ at techreport{PyPyJIT09,
+	title = {Automatic generation of {JIT} compilers for dynamic
+                   languages in .{NET}},
+	institution = {{DISI}, University of Genova and Institut f\"ur Informatik, {Heinrich-Heine-Universit\"at D\"usseldorf}},
+	author = {Davide Ancona and Carl Friedrich Bolz and Antonio Cuni and Armin Rigo},
+	year = {2008},
+},