A framework for optimistic program optimization

作者: Igor Pechtchanski , Benjamin Goldberg

DOI:

关键词:

摘要: The problem of program optimization is a non-trivial one. Compilers do fair job, but can't always deliver the best performance. expressibility general-purpose languages limited, not allowing programmers to describe expected run time behavior, for example, and some programs are thus more amenable than others, depending on what compiler expects see. We present generic framework that allows addressing this in two ways: through specifying verifiable source annotations guide analyses, optimistically using assumptions analysis results subset seen so far. Two novel applications presented, one each above approaches: dynamic optimistic interprocedural type algorithm, mechanism immutability assertions. Both result measurable speedups, demonstrating feasibility approach.

参考文章(76)
M. Leino, K. Rustan, Clyde Ruby, Bart Jacobs, Erik Poll, Gary T. Leavens, JML: notations and tools supporting detailed design in Java ,(2000)
Ravi Sethi, Jeffrey D. Ullman, Alfred V. Aho, Compilers: Principles, Techniques, and Tools ,(1986)
Nicholas Oxhøj, Jens Palsberg, Michael I. Schwartzbach, Making Type Inference Practical european conference on object oriented programming. pp. 329- 349 ,(1992) , 10.1007/BFB0053045
Frank Yellin, Tim Lindholm, The Java Virtual Machine Specification ,(1996)
J. E. Moreira, S. P. Midkiff, M. Gupta, From Flop to MegaFlops: Java for Technical Computing Languages and Compilers for Parallel Computing. pp. 1- 17 ,(1999) , 10.1007/3-540-48319-5_1
Ralph E. Johnson, William F. Opdyke, Refactoring and Aggregation Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software. pp. 264- 278 ,(1993) , 10.1007/3-540-57342-9_78
Xavier Leroy, Java Bytecode Verification: An Overview computer aided verification. pp. 265- 285 ,(2001) , 10.1007/3-540-44585-4_26
Bertrand Meyer, Eiffel: The Language ,(1991)
Craig Chambers, Igor Pechtchanski, Vivek Sarkar, Mauricio J. Serrano, Harini Srinivasan, Dependence Analysis for Java languages and compilers for parallel computing. pp. 35- 52 ,(1999) , 10.1007/3-540-44905-1_3