Scalable Formal Machine Models

  • Greg Morrisett
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7679)


In the past few years, we have seen machine-checked proofs of relatively large software systems, including compilers and micro-kernels. But like all formal arguments, the assurance gained by these mechanical proofs is only as good as the models we construct of the underlying machine. I will argue that how we construct and validate these models is of vital importance for the research community. In particular, I propose that we develop domain-specific languages (DSLs) for describing the semantics of machines, and build interpretations of these DSLs in our respective proof-development systems. This will allow us to factor out and re-use machine semantics for everything from software to hardware.


Semantic Model Operating System Principle Symbolic Reasoning Machine Description Enforce Security Policy 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Milner, R., Weyhrauch, R.: Proving compiler correctness in a mechanized logic. In: Proceedings of the 7th Annual Machine Intelligence Workshop. Machine Intelligence, vol. 7, pp. 51–72. Edinburgh University Press (1972)Google Scholar
  2. 2.
    Leroy, X.: Formal verification of a realistic compiler. Commun. of the ACM 52(7), 107–115 (2009)CrossRefGoogle Scholar
  3. 3.
    Klein, G., Elphinstone, K., Heiser, G., Andronick, J., Cock, D., Derrin, P., Elkaduwe, D., Engelhardt, K., Kolanski, R., Norrish, M., Sewell, T., Tuch, H., Winwood, S.: sel4: formal verification of an os kernel. In: Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, SOSP 2009, pp. 207–220. ACM, New York (2009)CrossRefGoogle Scholar
  4. 4.
    Wahbe, R., Lucco, S., Anderson, T.E., Graham, S.L.: Efficient software-based fault isolation. In: Proc. of the 14th ACM Symp. on Operating Systems Principles, SOSP 1993, pp. 203–216. ACM (1993)Google Scholar
  5. 5.
    Abadi, M., Budiu, M., Erlingsson, U., Ligatti, J.: Control-flow integrity. In: Proc. of the 12th ACM Conf. on Computer and Commun. Security, CCS 2005, pp. 340–353. ACM (2005)Google Scholar
  6. 6.
    Morrisett, G., Walker, D., Crary, K., Glew, N.: From System F to typed assembly language. In: Proc. of the 25th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL 1998, pp. 85–97. ACM (1998)Google Scholar
  7. 7.
    Ramsey, N., Fernandez, M.F.: Specifying representations of machine instructions. ACM Trans. Program. Lang. Syst. 19(3), 492–524 (1997)CrossRefGoogle Scholar
  8. 8.
    Ramsey, N., Davidson, J.W.: Machine Descriptions to Build Tools for Embedded Systems. In: Müller, F., Bestavros, A. (eds.) LCTES 1998. LNCS, vol. 1474, pp. 176–192. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  9. 9.
    Dias, J., Ramsey, N.: Automatically generating instruction selectors using declarative machine descriptions. In: Proc. of the 37th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL 2010, pp. 403–416. ACM (2010)Google Scholar
  10. 10.
    Morrisett, G., Tan, G., Tassarotti, J., Tristan, J.B., Gan, E.: Rocksalt: better, faster, stronger sfi for the x86. In: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2012, pp. 395–404. ACM, New York (2012)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Greg Morrisett
    • 1
  1. 1.Harvard UniversityUSA

Personalised recommendations