|
ABSTRACT
We introduce the idea of optimisation validation, which is to formally establish that an instance of an optimising transformation indeed improves with respect to some resource measure. This is related to, but in contrast with, translation validation, which aims to establish that a particular instance of a transformation undertaken by an optimising compiler is semantics preserving. Our main setting is a program logic for a subset of Java bytecode, which is sound and complete for a resource-annotated operational semantics. The latter employs resource algebras for measuring dynamic costs such as time, space and more elaborate examples. We describe examples of optimisation validation that we have formally verified in Isabelle/HOL using the logic. We also introduce a type and effect system for measuring static costs such as code size, which is proved consistent with the operational semantics.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
[1]
|
Aspinall, D., Beringer, L., Hofmann, M., Loidl, H.-W. and Momigliano, A., A program logic for resource verification. In: Slind, K., Bunker, A., Gopalakrishnan, G. (Eds.), LNCS, 3223. pp. 34-49.
|
| |
[2]
|
Aspinall, D., L. Beringer, M. Hofmann, H.-W. Loidl and A. Momigliano, A program logic for resources (2005), to appear in Theoretical Computer Science
|
| |
[3]
|
Aspinall, D., Gilmore, S., Hofmann, M., Sannella, D. and Stark, I., Mobile resource guarantees for smart devices. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (Eds.), LNCS, 3362. pp. 1-26.
|
| |
[4]
|
Barrett, C.W., Fang, Y., Goldberg, B., Hu, Y., Pnueli, A. and Zuck, L.D., TVOC: A Translation Validator for Optimizing Compilers. In: Etessami, K., Rajamani, S.K. (Eds.), LNCS, 3576. pp. 291-295.
|
 |
[5]
|
|
| |
[6]
|
Beringer, L., Hofmann, M., Momigliano, A. and Shkaravska, O., Automatic certification of heap consumption. In: Franz Baader, A.V. (Ed.), LNCS, 3425. pp. 347-362.
|
| |
[7]
|
Beringer, L., MacKenzie, K. and Stark, I., Grail: a functional form for imperative mobile code. ENTCS. v85.1. 1-21.
|
| |
[8]
|
|
| |
[9]
|
Cachera, D., Jensen, T., Pichardie, D. and Schneider, G., Certified memory usage analysis. In: Fitzgerald, J., Hayes, I.J., Tarlecki, A. (Eds.), LNCS, 3582. pp. 91-106.
|
 |
[10]
|
|
 |
[11]
|
|
| |
[12]
|
Denney, E. and Fischer, B., Correctness of source-level safety policies. In: Araki, K., Gnesi, S., Mandrioli, D. (Eds.), LNCS, 2805. pp. 894-913.
|
| |
[13]
|
Genet, T., Jensen, T.P., Kodati, V. and Pichardie, D., A Java Card CAP converter in PVS. ENTCS. v82.
|
 |
[14]
|
|
 |
[15]
|
|
| |
[16]
|
Hankin, C. and D.L. Métayer, A type-based framework for program analysis, in: SAS, 1994, pp. 380--394
|
| |
[17]
|
Hoare, C.A.R., Procedures and parameters: An axiomatic approach. In: Engeler, E. (Ed.), Notes in Mathematics, 188. pp. 102-116.
|
 |
[18]
|
|
| |
[19]
|
|
| |
[20].
|
|
 |
[21]
|
|
 |
[22]
|
|
| |
[23]
|
|
| |
[24]
|
Rinard, M., Credible compilation, Technical Report MIT-LCS-TR-776, MIT Laboratory for Computer Science (1999)
|
| |
[25]
|
|
| |
[26]
|
Schmidt, H.W. and Zimmermann, W., A complexity calculus for object-oriented programs. Hournal of Object-Oriented Systems. v1. 117-147.
|
 |
[27]
|
|
| |
[28]
|
Schröder, L. and Mossakowski, T., Monad-independent Hoare logic in HasCASL. In: Pezze, M. (Ed.), LNCS, 2621. pp. 261-277.
|
| |
[29]
|
Skalka, C. and Smith, S.F., History effects and verification. In: Chin, W.-N. (Ed.), LNCS, 3302. pp. 107-128.
|
 |
[30]
|
|
 |
[31]
|
Min Zhao , Bruce Childers , Mary Lou Soffa, Predicting the impact of optimizations for embedded systems, Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, June 11-13, 2003, San Diego, California, USA
|
CITED BY
|
|
David Aspinall , Lennart Beringer , Martin Hofmann , Hans-Wolfgang Loidl , Alberto Momigliano, A program logic for resources, Theoretical Computer Science, v.389 n.3, p.411-445, December, 2007
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.4
Software/Program Verification
Additional Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Compilers
F.
Theory of Computation
F.3
LOGICS AND MEANINGS OF PROGRAMS
F.3.2
Semantics of Programming Languages
Subjects:
Program analysis
General Terms:
Algorithms,
Design,
Experimentation,
Measurement,
Performance,
Theory,
Verification
Keywords:
Compiler Optimisation,
Cost Modelling,
Java Virtual Machine Language,
Lightweight Verification,
Program Logic,
Resource Algebras,
Translation Validation
|