[pypy-svn] r79239 - pypy/extradoc/talk/pepm2011

cfbolz at codespeak.net cfbolz at codespeak.net
Thu Nov 18 13:38:52 CET 2010


Author: cfbolz
Date: Thu Nov 18 13:38:51 2010
New Revision: 79239

Modified:
   pypy/extradoc/talk/pepm2011/escape-tracing.pdf
   pypy/extradoc/talk/pepm2011/paper.bib
   pypy/extradoc/talk/pepm2011/paper.tex
Log:
add related work. now we are at 11 pages again.


Modified: pypy/extradoc/talk/pepm2011/escape-tracing.pdf
==============================================================================
Binary files. No diff available.

Modified: pypy/extradoc/talk/pepm2011/paper.bib
==============================================================================
--- pypy/extradoc/talk/pepm2011/paper.bib	(original)
+++ pypy/extradoc/talk/pepm2011/paper.bib	Thu Nov 18 13:38:51 2010
@@ -177,6 +177,16 @@
 	pages = {223{\textendash}232}
 },
 
+ at phdthesis{jrgensen_calculus_1996,
+	type = {{Ph.D. Thesis}},
+	title = {A Calculus for Boxing Analysis of Polymorphically Typed Languages},
+	abstract = {An important decision when implementing languages with polymorphic types, such as Standard {ML} or Haskell, is whether to represent data in boxed or unboxed form and when to transform them from one representation to the other. Using a language with explicit representation types and boxing/unboxing operations we axiomatize equationally the set of all explicitly boxed versions, called completions, of a given source program. In a two-stage process we give some of the equations a rewriting interpretation that captures eliminating boxing/unboxing operations without relying on a specific implementation or even the semantics of the underlying language. The resulting reduction systems operate on congruence classes of completions defined by the remaining equations E, which can be understood as moving boxing/unboxing operations along data flow paths in the source program. We call a completion e formally optimal if every other completion for the same program (and at the same representation type) reduces to e under this two-stage reduction. We show that every source program has formally optimal completions, which are unique modulo E. This is accomplished by first "polarizing" the equations in E and orienting them to obtain two canonical (confluent and strongly normalizing) rewriting systems.},
+	school = {University of Copenhapen},
+	author = {Jesper J{\o}rgensen},
+	year = {1996},
+	note = {TR {96/28}}
+},
+
 @inproceedings{chang_tracing_2009,
 	address = {Washington, {DC,} {USA}},
 	title = {Tracing for Web 3.0: Trace Compilation for the Next Generation Web Applications},

Modified: pypy/extradoc/talk/pepm2011/paper.tex
==============================================================================
--- pypy/extradoc/talk/pepm2011/paper.tex	(original)
+++ pypy/extradoc/talk/pepm2011/paper.tex	Thu Nov 18 13:38:51 2010
@@ -132,6 +132,8 @@
 
 \section{Introduction}
 
+% XXX insert "practical" somewhere
+
 The objective of a just-in-time (JIT) compiler for a dynamic language is to
 improve the speed of the language over an implementation of the language that
 uses interpretation. The first goal of a JIT is therefore to remove the
@@ -1213,9 +1215,12 @@
 imperative language.
 In functional programming this idea was introduced as
  constructor specialisation by Mogensen \cite{mogensen_constructor_1993}.
-\reva{I'd refer here to \cite{wadler_deforestation:_1988}
-  and \cite{gill_short_1993}}
-\revb{cite and relate to: boxing analysis}
+
+A related optimization is also that of deforestation
+\cite{wadler_deforestation:_1988,gill_short_1993} which tries to remove
+intermediate lists or trees in functional languages. More explicitly geared at
+optimizing boxing is boxing analysis \cite{jrgensen_calculus_1996} which tries
+to fully remove pairs of calls to box/unbox in a functional language.
 
 %xxx:
 %partially static data structures: kenichi asai's thesis?



More information about the Pypy-commit mailing list