Abstract
Typed Assembly Languages (TALs) can be used to validate the safety of assembly-language programs. However, typing rules are usually trusted as axioms. In this paper, we show how to build semantic models for typing judgments in TALs based on an induction technique, so that both the type-safety theorem and the typing rules can be proved as lemmas in a simple logic. We demonstrate this technique by giving a complete model to a sample TAL. This model allows a typing derivation to be interpreted as a machine-checkable safety proof at the machine level.
This research was supported in part by DARPA award F30602-99-1-0519 and by NSF grant CCR-0208601.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Necula, G.: Proof-carrying code. In: 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 106–119. ACM Press, New York (1997)
Morrisett, G., Walker, D., Crary, K., Glew, N.: From System F to typed assembly language. ACM Trans. on Programming Languages and Systems 21, 527–568 (1999)
Morrisett, G., Crary, K., Glew, N., Grossman, D., Samuels, R., Smith, F., Walker, D., Weirich, S., Zdancewic, S.: TALx86:A realistic typed assembly language. In: Second ACMSIGPLAN Workshop on Compiler Support for System Software, Atlanta, GA, pp. 25–35 (1999); INRIA Technical Report 0288 (March 1999)
League, C., Shao, Z., Trifonov, V.: Precision in practice: A type-preserving Java compiler. In: Proc. Int’l. Conf. on Compiler Construction (2003)
Colby, C., Lee, P., Necula, G.C., Blau, F., Cline, K., Plesko, M.: A certifying compiler for Java. In: Proceedings of the 2000 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2000), ACM Press, New York (2000)
Chen, J., Wu, D., Appel, A.W., Fang, H.: A provably sound TAL for back-end optimization. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2003), pp. 208–219 (2003)
Schmidt, D.A.: Denotational Semantics: A Methodology for Language Development. Allyn and Bacon, Boston (1986)
Appel, A.W., Felty, A.P.: A semantic model of types and machine instructions for proofcarrying code. In: POPL 2000: The 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 243–253. ACM Press, New York (2000)
Appel, A.W., McAllester, D.: An indexed model of recursive types for foundational proofcarrying code. ACM Trans. on Programming Languages and Systems 23, 657–683 (2001)
Ahmed, A., Appel, A.W., Virga, R.: Astratified semantics of general references embeddable in higher-order logic. In: 17th Annual IEEE Symposium on Logic in Computer Science (LICS 2002), pp. 75–86 (2002)
Michael, N.G., Appel, A.W.: Machine instruction syntax and semantics in higher-order logic. In: McAllester, D. (ed.) CADE 2000. LNCS (LNAI), vol. 1831, pp. 7–24. Springer, Heidelberg (2000)
Appel, A.W.: Foundational proof-carrying code. In: Symposium on Logic in Computer Science (LICS 2001), pp. 247–258. IEEE, Los Alamitos (2001)
Pfenning, F., Schürmann, C.: System description: Twelf — a meta-logical framework for deductive systems. In: Ganzinger, H. (ed.) CADE 1999. LNCS (LNAI), vol. 1632, pp. 202–206. Springer, Heidelberg (1999)
Gordon, M.: Mechanizing programming logics in higher-order logic. In: Birtwistle, G.M., Subrahmanyam, P.A. (eds.) Current Trends in Hardware Verification and Automatic Theorem Proving, Banff, Canada, pp. 387–439. Springer, Berlin (1988)
Wahab, M.: Verification and abstraction of flow-graph programs with pointers and computed jumps. Research Report CS-RR-354, Department of Computer Science, University of Warwick, Coventry, UK (1998)
Hamid, N., Shao, Z., Trifonov, V., Monnier, S., Ni, Z.: A syntactic approach to foundational proof-carrying code. In: Proc. 17th Annual IEEE Symposium on Logic in Computer Science (LICS 2002), pp. 89–100 (2002)
Crary, K.: Toward a foundational typed assembly language. In: The 30th ACM SIGPLANSIGACT Symposium on Principles of Programming Languages, pp. 198–212. ACM Press, New York (2003)
Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115, 38–94 (1994)
de Bruin, A.: Goto statements: Semantics and deduction systems. Acta Informatica 15, 385–424 (1981)
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
Tan, G., Appel, A.W., Swadi, K.N., Wu, D. (2004). Construction of a Semantic Model for a Typed Assembly Language. In: Steffen, B., Levi, G. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2004. Lecture Notes in Computer Science, vol 2937. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24622-0_4
Download citation
DOI: https://doi.org/10.1007/978-3-540-24622-0_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20803-7
Online ISBN: 978-3-540-24622-0
eBook Packages: Springer Book Archive