Data specialization

作者: Todd B. Knoblock , Erik Ruf

DOI: 10.1145/231379.231428

关键词: Data structureComputationRemainderDynamic compilationInvariant (computer science)AlgorithmObject codeEarly phaseCompiled languageComputer science

摘要: Given a repeated computation, part of whose input context remains invariant across all repetitions, program staging improves performance by separating the computation into two phases. An early phase executes only once, performing computations depending on inputs, while late repeatedly performs remainder work given varying inputs and results computations.Common techniques based dynamic compilation statically construct an that dynamically generates object code customized for particular context. In effect, are encoded as compiled phase.This paper describes alternative approach in which data structure, allowing both phases to be generated statically. By avoiding manipulation, we give up some optimization opportunities exchange significantly lower space/time overhead reduced implementation complexity.

参考文章(26)
Ravi Sethi, Jeffrey D. Ullman, Alfred V. Aho, Compilers: Principles, Techniques, and Tools ,(1986)
Peter Sestoft, Neil D. Jones, Carsten K. Gomard, Partial evaluation and automatic program generation ,(1993)
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, F. Kenneth Zadeck, Efficiently computing static single assignment form and the control dependence graph ACM Transactions on Programming Languages and Systems. ,vol. 13, pp. 451- 490 ,(1991) , 10.1145/115372.115320
Ulrik Jørring, William L. Scherlis, Compilers and staging transformations Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages - POPL '86. pp. 86- 96 ,(1986) , 10.1145/512644.512652
L. Peter Deutsch, Allan M. Schiffman, Efficient implementation of the smalltalk-80 system symposium on principles of programming languages. pp. 297- 302 ,(1984) , 10.1145/800017.800542
Preston Briggs, Keith D. Cooper, Effective partial redundancy elimination programming language design and implementation. ,vol. 29, pp. 159- 170 ,(1994) , 10.1145/178243.178257
Dawson R. Engler, Wilson C. Hsieh, M. Frans Kaashoek, C: a language for high-level, efficient, and machine-independent dynamic code generation symposium on principles of programming languages. pp. 131- 144 ,(1996) , 10.1145/237721.237765
Joel Auslander, Matthai Philipose, Craig Chambers, Susan J. Eggers, Brian N. Bershad, Fast, effective dynamic compilation Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation - PLDI '96. ,vol. 31, pp. 149- 159 ,(1996) , 10.1145/231379.231409
M. A. Bulyonkov, Polyvariant mixed computation for analyzer programs Acta Informatica. ,vol. 21, pp. 473- 484 ,(1984) , 10.1007/BF00271642