COOKIES: By using this website you agree that we can place Google Analytics Cookies on your device for performance monitoring. |
University of Cambridge > Talks.cam > Semantics Lunch (Computer Laboratory) > High-Level Separation Logic for Low-Level Code
High-Level Separation Logic for Low-Level CodeAdd to your list(s) Download to your calendar using vCal
If you have a question about this talk, please contact Peter Sewell. (joint work with Jonas Jensen and Andrew Kennedy) Separation logic is a powerful tool for reasoning about structured, imperative programs that manipulate pointers. However, its application to unstructured, lower-level languages such as assembly language or machine code remains challenging. We describe a separation logic tailored for this purpose that we have applied to x86 machine code programs. The logic is built from an assertion logic on machine states over which we construct a specification logic that encapsulates uses of frames and step indexing. The traditional notion of Hoare triple is not applicable directly to unstructured machine code, where code and data are mixed together and programs do not in general run to completion, so instead we adopt a continuation-passing style of specification with preconditions alone. Nevertheless, the range of primitives provided by the specification logic, which include a higher-order frame connective, a novel read-only frame connective, and a ‘later’ modality, support the definition of derived forms to support basic-block-style reasoning for common cases, in which standard rules for Hoare triples are derived as lemmas. Furthermore, our encoding of assembly language labels in terms of the more primitive code pointers lets us encapsulate local usage of labels and the definition and rules for assembly-language ‘macros’ such as while loops and conditionals. We have applied the framework to a model of x86 machine code built entirely within the Coq proof assistant, including tactic support based on computational reflection. This talk is part of the Semantics Lunch (Computer Laboratory) series. This talk is included in these lists:
Note that ex-directory lists are not shown. |
Other listsEPRG Energy and Environment (E&E) Series Lent 2012 IV EURASIAN RESEARCH FORUM Lucy Cavendish Thursday Evening Talks Microelectronics Group Seminar Churchill Scholars Overly Awesome Research Symposium (ChuSOARS) Economics and Computer Science TalksOther talksThe Gopakumar-Vafa conjecture for symplectic manifolds The persistence and transience of memory Art speak Cellular recycling: role of autophagy in aging and disease Mothers & Daughters: a psychoanalytical perspective Perylene-Based Poly(N-Heterocycles): Organic Semiconductors, Biological Fluorescence Probes and Building Blocks for Molecular Surface Networks Throwing light on organocatalysis: new opportunities in enantioselective synthesis The role of myosin VI in connexin 43 gap junction accretion BP KEYNOTE LECTURE: Importance of C-O Bond Activation for CO2/COUtilization - An Approach to Energy Conversion and Storage The ‘Easy’ and ‘Hard’ Problems of Consciousness Paracelsus' Chickens - Strange Tales from the History of Chemistry |