Skip to main content Accessibility help
×
Hostname: page-component-848d4c4894-mwx4w Total loading time: 0 Render date: 2024-06-28T17:37:16.508Z Has data issue: false hasContentIssue false

Bibliography

Published online by Cambridge University Press:  05 August 2014

Andrew W. Appel
Affiliation:
Princeton University, New Jersey
Robert Dockins
Affiliation:
Portland State University
Aquinas Hobor
Affiliation:
National University of Singapore
Lennart Beringer
Affiliation:
Princeton University, New Jersey
Josiah Dodds
Affiliation:
Princeton University, New Jersey
Gordon Stewart
Affiliation:
Princeton University, New Jersey
Sandrine Blazy
Affiliation:
Université de Rennes I, France
Xavier Leroy
Affiliation:
Institut National de Recherche en Informatique et en Automatique (INRIA), Rocquencourt
Get access

Summary

Image of the first page of this content. For PDF version, please use the ‘Save PDF’ preceeding this image.'
Type
Chapter
Information
Publisher: Cambridge University Press
Print publication year: 2014

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

[1] Sarita V, Adve and Hans J., Boehm. Memory models: A case for rethinking parallel languages and hardware. Communications of the ACM, 53(8):90-101, 2010.Google Scholar
[2] Amal, Ahmed. Semantics of Types for Mutable State. PhD thesis, Princeton University, Princeton, NJ, November 2004. Tech Report TR-713-04.Google Scholar
[3] Amal, Ahmed, Andrew W., Appel, Christopher D., Richards, Kedar N., Swadi, Gang, Tan, and Daniel C., Wang. Semantic foundations for typed assembly languages. ACM Trans. on Programming Languages and Systems, 32(3):7:1-7:67, March 2010.Google Scholar
[4] Amal, Ahmed, Andrew W., Appel, and Roberto, Virga. An indexed model of impredicative polymorphism and mutable references. http://www.cs.princeton.edu/~appel/papers/impred.pdf, January 2003.Google Scholar
[5] Andrew W., Appel. Foundational proof-carrying code. In 16th Annual IEEE Symposium on Logic in Computer Science (LICS'01), 2001.Google Scholar
[6] Andrew W., Appel. Tactics for separation logic. http://www.cs.princeton.edu/~appel/papers/septacs.pdf, 2006.Google Scholar
[7] Andrew W, Appel. Verified software toolchain. In ESOP 2011: 20th European Symposium on Programming, LNCS 6602, pages 1-17, 2011.Google Scholar
[8] Andrew W, Appel. VeriSmall: Verified Smallfoot shape analysis. In First International Conference on Certified Programs and Proofs (CPP'11), LNCS 7086, pages 231-246, 2011.Google Scholar
[9] Andrew W., Appel and Sandrine, Blazy. Separation logic for small-step C minor. In 20th International Conference on Theorem Proving in Higher-Order Logics, pages 5-21, 2007.Google Scholar
[10] Andrew W., Appel and David, McAllester. An indexed model of recursive types for foundational proof-carrying code. ACM Trans. on Programming Languages and Systems, 23(5):657-683, September 2001.Google Scholar
[11] Andrew W., Appel, Paul-André, Melliès, Christopher D., Richards, and Jerôme, Vouillon. A very modal model of a modern, major, general type system. In 34th Annual Symposium on Principles of Programming Languages (POPL'07), pages 109-122, January 2007.Google Scholar
[12] Andrew W., Appel, Neophytos G., Michael, Aaron, Stump, and Roberto, Virga. A trustworthy proof checker. J. Automated Reasoning, 31:231-260, 2003.Google Scholar
[13] Le Xuan, Bach, Cristian, Gherghina, and Aquinas, Hobor. Decision procedures over sophisticated fractional permissions. In APLAS: 10th Asian Symposium on Programming Languages and Systems, LNCS 7705, 2012.Google Scholar
[14] Gilles, Barthe, Benjamin, Grégoire, César, Kunz, and Tamara, Rezk. Certificate translation for optimizing compilers. ACM Trans. on Programming Languages and Systems, 31(5):18:1-18:45, 2009.Google Scholar
[15] Ricardo Bedin, França, Denis, Favre-Felix, Xavier, Leroy, Marc, Pantel, and Jean, Souyris. Towards optimizing certified compilation in flight control software. In Workshop on Predictability and Performance in Embedded Systems (PPES 2011), volume 18 of OpenAccess Series in Informatics, pages 59-68. Dagstuhl Publishing, 2011.Google Scholar
[16] Jesper, Bengtson, Jonas Braband, Jensen, and Lars, Birkedal. Charge! A framework for higher-order separation logic in Coq. In Third International Conference on Interactive Theorem Proving (ITP'12), LNCS 7406, pages 315-331. Springer, August 2012.Google Scholar
[17] Josh, Berdine, Cristiano, Calcagno, and Peter, O'Hearn. A decidable fragment of separation logic. FSTTCS 2004: Foundations of Software Technology and Theoretical Computer Science, pages 110-117, 2005.Google Scholar
[18] Josh, Berdine, Cristiano, Calcagno, and Peter W., O'Hearn. Smallfoot: Modular automatic assertion checking with separation logic. In Formal Methods for Components and Objects, LNCS 4709, pages 115-135. Springer, 2005.Google Scholar
[19] Josh, Berdine, Cristiano, Calcagno, and Peter W., O'Hearn. Symbolic execution with separation logic. In APLAS'05: Third Asian Symposium on Programming Languages and Systems, LNCS 3780, pages 52-68, 2005.Google Scholar
[20] Josh, Berdine, Byron, Cook, and Samin, Ishtiaq. SLAyer: Memory safety for systems-level code. In Computer Aided Verification (CAV11), LNCS 6806, pages 178-183. Springer, 2011.Google Scholar
[21] Lars, Birkedal, Bernhard, Reus, Jan, Schwinghammer, Kristian, String, Jacob, Thamsborg, and Hongseok, Yang. Step-indexed kripke models over recursive worlds. In POPL11: 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2011.Google Scholar
[22] Sandrine, Blazy, Vincent, Laporte, Andre, Maroneze, and David, Pichardie. Formal verification of a C value analysis based on abstract interpretation, 2013.Google Scholar
[23] Sandrine, Blazy and Xavier, Leroy. Mechanized semantics for the Clight subset of the C language. Journal of Automated Reasoning, 43(3):263-288, 2009.Google Scholar
[24] Hans-J., Boehm. Threads cannot be implemented as a library. In PLDI '05: 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 261-268, 2005.Google Scholar
[25] S., Boldo and G., Melquiond. Flocq: A unified library for proving floating-point algorithms in Coq. In 20th IEEE Symposium on Computer Arithmetic (ARITH), pages 243-252. IEEE, 2011.Google Scholar
[26] Richard, Bornat. Proving pointer programs in Hoare logic. In MPC 00: International Conference on Mathematics ofProgram Construction, LNCS 1837, pages 102-126. Springer, 2000.Google Scholar
[27] Richard, Bornat, Cristiano, Calcagno, Peter, O'Hearn, and Matthew, Parkinson. Permission accounting in separation logic. In POPL05: 32nd ACM Symposium on Principles of Programming Languages, pages 259-270, 2005.Google Scholar
[28] John, Boyland. Checking interference with fractional permissions. In 10th Static Analysis Symposium (SAS 03), LNCS 2694, pages 55-72. Springer, 2003.Google Scholar
[29] James, Brotherston and Cristiano, Calcagno. Classical, BI: Its semantics and proof theory. Logical Methods in Computer Science, 6(3), 2010.Google Scholar
[30] Rod, Burstall. Some techniques for proving correctness of programs which alter data structures. Machine Intelligence, 7:23-50, 1972.Google Scholar
[31] Cristiano, Calcagno, Dino, Distefano, Peter, O'Hearn, and Hongseok, Yang. Compositional shape analysis by means of bi-abduction. In POPL09: 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 289-300, January 2009.Google Scholar
[32] Cristiano, Calcagno, Peter W., O'Hearn, and Hongseok, Yang. Local action and abstract separation logic. In LICS 07: 22nd Annual IEEE Symposium on Logic in Computer Science, pages 366-378, 2007.Google Scholar
[33] Adam, Chlipala. Mostly-automated verification of low-level programs in computational separation logic. In PLDI'11: Proceedings 2011 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 234-245, 2011.Google Scholar
[34] Adam, Chlipala. Certified Programming with Dependent Types: A Pragmatic Introduction to the Coq Proof Assistant. MIT Press, 2013.Google Scholar
[35] Karl, Crary. Toward a foundational typed assembly language. In POPL'03: 30th ACM Symposium on Principles of Programming Languages, pages 198-212, 2003.Google Scholar
[36] Maulik A., Dave. Compiler verification: A bibliography. SIGSOFT Softw. Eng. Notes, 28(6):2-2, November 2003.Google Scholar
[37] Edsger W., Dijkstra. Cooperating sequential processes. In F., Genuys, editor, Programming Languages, pages 43-112. Academic Press, New York, NY, 1968.Google Scholar
[38] Robert, Dockins. Operational Refinement for Compiler Correctness. PhD thesis, Princeton University, Princeton, NJ, August 2012.Google Scholar
[39] Robert, Dockins and Aquinas, Hobor. A theory of termination via indirection. In Amal, Ahmed et al., editors, Modelling, Controlling and Reasoning About State, number 10351 in Dagstuhl Seminar Proceedings, Dagstuhl, Germany, 2010.Google Scholar
[40] Robert, Dockins, Aquinas, Hobor, and Andrew W., Appel. A fresh look at separation algebras and share accounting. In APLAS: 7th Asian Symposium on Programming Languages and Systems, LNCS 5904, pages 161-177, 2009.Google Scholar
[41] Philippa, Gardner and Mark, Wheelhouse. Small speciications for tree update. In 6th International Conference on Web Services and Formal Methods, LNCS 6194, pages 178-195, 2010.Google Scholar
[42] Rakesh, Ghiya and Laurie J., Hendren. Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C. In POPL'96: 23rd ACM SIGPLAN-SIGACT Symposium on Principles ofProgramming Languages, pages 1-15, 1996.Google Scholar
[43] Jean-Yves, Girard. Linear logic. Theoretical computer science, 50(1):1-101, 1987.Google Scholar
[44] Alexey, Gotsman, Josh, Berdine, Byron, Cook, Noam, Rinetzky, and Mooly, Sagiv. Local reasoning for storable locks and threads. In 5th Asian Symposium on Programming Languages and Systems (APLAS 07), 2007.Google Scholar
[45] Nadeem, Hamid, Zhong, Shao, Valery, Trifonov, Stefan, Monnier, and Zhaozhong, Ni. A syntactic approach to foundational proof-carrying code. In 17th Annual IEEE Symposium on Logic in Computer Science (LICS02), pages 89-100, July 2002.Google Scholar
[46] Robert, Harper. A simplified account of polymorphic references. Information Processing Letters, 51:201-206, 1994.Google Scholar
[47] Robert, Harper. Practical Foundations for Programming Languages. Cambridge, 2012.Google Scholar
[48] C. A. R., Hoare. Monitors: An operating system structuring concept. Communications of the ACM, 17(10):549-57, October 1974.Google Scholar
[49] Aquinas, Hobor. Oracle Semantics. PhD thesis, Princeton University, Princeton, NJ, November 2008.Google Scholar
[50] Aquinas, Hobor. Improving the compositionality of separation algebras. http://www.comp.nus.edu.sg/~hobor/Publications/2011/psepalg.pdf,2011.
[51] Aquinas, Hobor, Andrew W., Appel, and Francesco Zappa, Nardelli. Oracle semantics for concurrent separation logic. In ESOP 08: 17th European Symposium on Programming, LNCS 4960, pages 353-367, 2008.Google Scholar
[52] Aquinas, Hobor, Robert, Dockins, and Andrew W., Appel. A theory of indirection via approximation. In 37th Annual ACM Symposium on Principles of Programming Languages (POPL 10), pages 171-185, January 2010.Google Scholar
[53] Aquinas, Hobor and Jules, Villard. The ramifications of sharing in data structures. In POPL'13: 40th Annual Symposium on Principles of Programming Languages, pages 523-536, 2013.Google Scholar
[54] Michael R. A., Huth and Mark D., Ryan. Logic in Computer Science: Modelling and Reasoning About Systems. Cambridge, 2nd edition, 2004.Google Scholar
[55] IEEE and The Open Group. IEEE Standard 1003.1-2001, 2001.
[56] Samin, Ishtiaq and Peter, O'Hearn. BI as an assertion language for mutable data structures. In POPL 2001: The 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 14-26. ACM Press, January 2001.Google Scholar
[57] ISO. International standard ISO/IEC 9899:1999, Programming languages - C, 1999.
[58] Jonas Braband, Jensen and Lars, Birkedal. Fictional separation logic. In ESOP'12: European Symposium on Programming, LNCS 7211, 2012.Google Scholar
[59] Achim, Jung and Jerzy, Tiuryn. A new characterization of lambda definability. In M., Bezem and J. F., Groote, editors, Typed Lambda Calculi and Applications, volume 664 of Lecture Notes in Computer Science, pages 245-257. Springer Verlag, 1993.Google Scholar
[60] Gerwin, Klein and Tobias, Nipkow. A machine-checked model for a Java-like language, virtual machine and compiler. ACM Trans. on Programming Languages and Systems, 28:619-695, 2006.Google Scholar
[61] D., Leinenbach and E., Petrova. Pervasive compiler verification — from verified programs to verified systems. ENTCS, 217:23-40, July 2008.Google Scholar
[62] Xavier, Leroy. A formally verified compiler back-end. Journal of Automated Reasoning, 43(4):363-446, 2009.Google Scholar
[63] Xavier, Leroy. The CompCert verified compiler, software and commented proof, March 2011.Google Scholar
[64] Xavier, Leroy and Sandrine, Blazy. Formal verification of a C-like memory model and its uses for verifying program transformations. Journal of Automated Reasoning, 41(1), 2008.Google Scholar
[65] David, MacQueen, Gordon, Plotkin, and Ravi, Sethi. An ideal model for recursive polymophic types. Information and Computation, 71(1/2):95-130, 1986.Google Scholar
[66] Andrew, McCreight. Practical tactics for separation logic. In TPHOL: International Conference on Theorem Proving in Higher Order Logics, LNCS 5674, pages 343-358. Springer, 2009.Google Scholar
[67] J. S., Moore. A mechanically verified language implementation. Journal of Automated Reasoning, 5(4):461-492, 1989.Google Scholar
[68] Hiroshi, Nakano. A modality for recursion. In LICS'00: 15th IEEE Symposium on Logic in Computer Science, pages 255-266, 2000.Google Scholar
[69] Juan Antonio Navarro, Pérez and Andrey, Rybalchenko. Separation logic + superposition calculus = heap theorem prover. In PLDI'11: Proceedings 2011 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 556-566, 2011.Google Scholar
[70] Michael, Norrish. C Formalized in HOL. PhD thesis, University of Cambridge, 1998. Tech. report UCAM-CL-TR-453.Google Scholar
[71] Peter W., O'Hearn. Resources, concurrency and local reasoning. Theoretical Computer Science, 375(1):271-307, May 2007.Google Scholar
[72] Peter W., O'Hearn. A primer on separation logic (and automatic program verification and analysis). In Software Safety and Security, pages 286-318. IOS Press, 2012.Google Scholar
[73] Jonghyun, Park, Jeongbong, Seo, and Sungwoo, Park. A theorem prover for boolean BI. In POPL'13: 40th Annual Symposium on Principles of Programming Languages, pages 219-232, 2013.Google Scholar
[74] Matthew J., Parkinson. Local Reasoning for Java. PhD thesis, University of Cambridge, 2005.Google Scholar
[75] Benjamin C., Pierce. Types and Programming Languages. MIT Press, Cambridge, Mass., 2002.Google Scholar
[76] Benjamin C., Pierce et al. Software Foundations. http://www.cis.upenn.edu/~bcpierce/sf/, 2012.Google Scholar
[77] Gordon D., Plotkin. Lambda-definability and logical relations. Technical Report Memorandum SAI-RM-4, University of Edinburgh, 1973.Google Scholar
[78] François, Pottier. Syntactic soundness proof of a type-and-capability system with hidden state. Journal of Functional Programming, 23(1):38-144, January 2013.Google Scholar
[79] John, Reynolds. Separation logic: A logic for shared mutable data structures. In LICS 2002: IEEE Symposium on Logic in Computer Science, pages 55-74, July 2002.Google Scholar
[80] John C., Reynolds. An introduction to separation logic. http://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/jcr/copenhagen08.pdf, 2008.Google Scholar
[81] John C., Reynolds. Readable proofs in Hoare logic and separation logic. Unpublished slides for an invited talk at ETAPS 2009. http://www.cs.cmu.edu/~jcr/etaps.pdf, March 2009.Google Scholar
[82] Christopher D., Richards. The Approximation Modality in Models of Higher-Order Types. PhD thesis, Princeton University, Princeton, NJ, June 2010.Google Scholar
[83] Moses, Schönfinkel. Über die Bausteine der mathematischen Logik. Mathematische Annalen, 92:305-316, 1924.Google Scholar
[84] Dana S., Scott. Data types as lattices. SIAM Journal on Computing, 5(3):522-587, 1976.Google Scholar
[85] Gordon, Stewart, Lennart, Beringer, and Andrew W., Appel. Verified heap theorem prover by paramodulation. In ICFP'12: 17th ACM SIGPLAN International Conference on Functional Programming, pages 3-14, 2012.Google Scholar
[86] Mads, Tofte. Type inference for polymorphic references. Information and Computation, 89:1-34, November 1990.Google Scholar
[87] Harvey, Tuch, Gerwin, Klein, and Michael, Norrish. Types, bytes, and separation logic. In POPL'07: 34th Annual Symposium on Principles of Programming Languages, pages 97-108, 2007.Google Scholar
[88] Thomas, Tuerk. A formalisation of Smallfoot in HOL. In TPHOL'09: Theorem Proving in Higher Order Logics, LNCS 5674, pages 469-484. Springer, 2009.Google Scholar
[89] Andrew K., Wright. Simple imperative polymorphism. Lisp and Symbolic Computation, 8(4):343-355, December 1995.Google Scholar

Save book to Kindle

To save this book to your Kindle, first ensure coreplatform@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about saving to your Kindle.

Note you can select to save to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

  • Bibliography
  • Andrew W. Appel, Princeton University, New Jersey
  • Book: Program Logics for Certified Compilers
  • Online publication: 05 August 2014
  • Chapter DOI: https://doi.org/10.1017/CBO9781107256552.056
Available formats
×

Save book to Dropbox

To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Dropbox.

  • Bibliography
  • Andrew W. Appel, Princeton University, New Jersey
  • Book: Program Logics for Certified Compilers
  • Online publication: 05 August 2014
  • Chapter DOI: https://doi.org/10.1017/CBO9781107256552.056
Available formats
×

Save book to Google Drive

To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Google Drive.

  • Bibliography
  • Andrew W. Appel, Princeton University, New Jersey
  • Book: Program Logics for Certified Compilers
  • Online publication: 05 August 2014
  • Chapter DOI: https://doi.org/10.1017/CBO9781107256552.056
Available formats
×