Abstract
Static single assignment (SSA) form is the intermediate representation of choice in modern optimizing compilers for which no formal semantics has been stated yet. To prove such compilers correct, a formal semantics of SSA representations is necessary. In this paper, we show that abstract state machines (ASMs) are able to capture the imperative as well as the data flow-driven and therefore non-deterministic aspects of SSA representations in a simple and elegant way. Furthermore, we demonstrate that correctness of code generation can be verified based on this ASM semantics by proving the correctness of a simple code generation algorithm.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Börger, E., Durdanovic, I.: Correctness of compiling Occam to Transputer Code. Computer Journal 39(1), 52–92 (1996)
Börger, E., Rosenzweig, D.: The WAM - definition and compiler correctness. In: Beierle, L.C., Pluemer, L. (eds.) Logic Programming: Formal Methods and Practical Applications. North-Holland Series in Computer Science and Artificial Intelligence (1994)
Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: Efficiently Computing Static Single Assignment Form and the Control Dependence Graph. ACM Transactions on Programming Languages and Systems 13(4), 451–490 (1991)
Dold, A., Vialard, V.: A Mechanically Verified Compiling Specification for a Lisp Compiler. In: Hariharan, R., Mukund, M., Vinay, V. (eds.) FSTTCS 2001. LNCS, vol. 2245, p. 144. Springer, Heidelberg (2001)
Dold, A., Henke, F.v., Vialard, V., Goerigk, W.: A Mechanically Verified Compiling Specification for a Realistic Compiler. Ulmer Informatik- Berichte 02-03, Universität Ulm, Fakultät für Informatik (2002)
Eschbach, R.: Uwe Glässer, Reinhard Gotzhein, and Andreas Prinz. On the Formal Semantics of Design Languages: A compilation approach using Abstract State Machines. In: Abstract State Machines – ASM 2000, International Workshop on Abstract State Machines. Local Proceedings, TIK-report 87, Swiss Federal Institute of Technology (ETH) Zurich (2000)
Gurevich, Y., Huggins, J.K.: The Semantics of the C Programming Language. In: Martini, S., Börger, E., Kleine Büning, H., Jäger, G., Richter, M.M. (eds.) CSL 1992. LNCS, vol. 702, pp. 274–308. Springer, Heidelberg (1993)
Gurevich, Y.: Evolving Algebras 1993: Lipari Guide. In: Specification and Validation Methods, pp. 231–243. Oxford University Press, Oxford (1995)
Goos, G., Zimmermann, W.: Verification of Compilers. In: Olderog, E.-R., Steffen, B. (eds.) Correct System Design. LNCS, vol. 1710, p. 201. Springer, Heidelberg (1999)
Muchnick, S.S.: Compiler Design and Implementation. Morgan Kaufmann Publishers, Inc., San Francisco (1997)
Newsticker, H.: Rotstich durch Fehler in Intels C++ Compiler (2001), http://www.heise.de/newsticker/data/hes-11.11.01-000/
Stärk, R., Schmid, J., Börger, E.: Java and the Java Virtual Machine: Definition, Verification, Validation. Springer, Heidelberg (2001)
Steensgaard, B.: Sparse Functional Stores for Imperative Programs. In: The First ACM SIGPLAN Workshop on Intermediate Representations (1995)
Wallace, C.: The Semantics of the C++ Programming Language. In: Specification and Validation Methods, Oxford University Press, Oxford (1995)
Zimmermann, W., Dold, A.: A Framework for Modeling the Semantics of Expression Evaluation with Abstract State Machines. In: Börger, E., Gargantini, A., Riccobene, E. (eds.) ASM 2003. LNCS, vol. 2589, pp. 391–406. Springer, Heidelberg (2003)
Zimmermann, W., Gaul, T.: On the Construction of Correct Compiler Backends: An ASM Approach. Journal of Universal Computer Science 3(5), 504–567 (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Glesner, S. (2004). An ASM Semantics for SSA Intermediate Representations. In: Zimmermann, W., Thalheim, B. (eds) Abstract State Machines 2004. Advances in Theory and Practice. ASM 2004. Lecture Notes in Computer Science, vol 3052. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24773-9_11
Download citation
DOI: https://doi.org/10.1007/978-3-540-24773-9_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22094-7
Online ISBN: 978-3-540-24773-9
eBook Packages: Springer Book Archive