Skip to main content

Construction of a Semantic Model for a Typed Assembly Language

  • Conference paper
Verification, Model Checking, and Abstract Interpretation (VMCAI 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2937))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Necula, G.: Proof-carrying code. In: 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 106–119. ACM Press, New York (1997)

    Chapter  Google Scholar 

  2. 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)

    Article  Google Scholar 

  3. 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)

    Google Scholar 

  4. League, C., Shao, Z., Trifonov, V.: Precision in practice: A type-preserving Java compiler. In: Proc. Int’l. Conf. on Compiler Construction (2003)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. Schmidt, D.A.: Denotational Semantics: A Methodology for Language Development. Allyn and Bacon, Boston (1986)

    Google Scholar 

  8. 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)

    Chapter  Google Scholar 

  9. 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)

    Article  Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. Appel, A.W.: Foundational proof-carrying code. In: Symposium on Logic in Computer Science (LICS 2001), pp. 247–258. IEEE, Los Alamitos (2001)

    Chapter  Google Scholar 

  13. 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)

    Chapter  Google Scholar 

  14. 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)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Chapter  Google Scholar 

  18. Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115, 38–94 (1994)

    Article  MATH  MathSciNet  Google Scholar 

  19. de Bruin, A.: Goto statements: Semantics and deduction systems. Acta Informatica 15, 385–424 (1981)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics