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). |
Year | DOI | Venue |
---|---|---|
2004 | 10.1145/1014007.1014010 | PEPM |
Keywords | Field | DocType |
high level language,python language,run-time dichotomy,run-time data,traditional specialization domain,psyco prototype,data-oriented specialization,powerful perspective,powerful application,representation-based just-in-time specialization,just-in-time specialization,specialization process,python,representation,partial evaluation | Inverse,Programming language,Computer science,Partial evaluation,Generalization,Theoretical computer science,Interpreter,Operator (computer programming),Python (programming language) | Conference |
ISBN | Citations | PageRank |
1-58113-835-0 | 36 | 3.70 |
References | Authors | |
10 | 1 |
Name | Order | Citations | PageRank |
---|---|---|---|
Armin Rigo | 1 | 301 | 18.27 |