Filters








114 Hits in 5.2 sec

CompCertS: A Memory-Aware Verified C Compiler Using Pointer as Integer Semantics [chapter]

Frédéric Besson, Sandrine Blazy, Pierre Wilke
2017 Lecture Notes in Computer Science  
In this paper, we present a formally verified C compiler, CompCertS, which is essentially the CompCert compiler, albeit with a stronger formal guarantee: it gives a semantics to more programs and ensures  ...  CompCertS is based on an enhanced memory model where, unlike CompCert but like Gcc, the binary representation of pointers can be manipulated much like integers and where, unlike CompCert, allocation may  ...  Our work builds upon the CompCert C compiler [12] . The semantics and the memory model used in the compiler are close to ISO C.  ... 
doi:10.1007/978-3-319-66107-0_6 fatcat:c4soqbialrhybli4vakttsnxme

CompCertS: A Memory-Aware Verified C Compiler Using a Pointer as Integer Semantics

Frédéric Besson, Sandrine Blazy, Pierre Wilke
2018 Journal of automated reasoning  
In this paper, we present a formally verified C compiler, CompCertS, which is essentially the CompCert compiler, albeit with a stronger formal guarantee: it gives a semantics to more programs and ensures  ...  CompCertS is based on an enhanced memory model where, unlike CompCert but like Gcc, the binary representation of pointers can be manipulated much like integers and where, unlike CompCert, allocation may  ...  Our work builds upon the CompCert C compiler [12] . The semantics and the memory model used in the compiler are close to ISO C.  ... 
doi:10.1007/s10817-018-9496-y fatcat:jbnxpuuzindkdn7oxdhzen2pm4

Compiling Sandboxes: Formally Verified Software Fault Isolation [chapter]

Frédéric Besson, Sandrine Blazy, Alexandre Dang, Thomas Jensen, Pierre Wilke
2019 Lecture Notes in Computer Science  
The technical contributions are a novel sandboxing transformation that has a well-defined C semantics and which supports arbitrary function pointers, and a formally verified C compiler that implements  ...  Instead of relying on a posteriori verification, we design, implement and prove correct a program instrumentation phase as part of the formally verified compiler CompCert that enforces a sandboxing security  ...  To sidestep the semantics limitation of pointer arithmetic, we introduce a compile-time encoding of pointer as integers.  ... 
doi:10.1007/978-3-030-17184-1_18 fatcat:hoqmb4tyazdkfp42ejkavs3oya

An abstract stack based approach to verified compositional compilation to machine code

Yuting Wang, Pierre Wilke, Zhong Shao
2019 Proceedings of the ACM on Programming Languages (PACMPL)  
This research is based on work supported in part by NSF grants 1521523, 1715154, and 1763399 and DARPA grant FA8750-15-C-0082. The U.S.  ...  The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of DARPA  ...  A pointer is a pair (b, o) consisting of a block identifier b and an integer offset o within that block. This model captures the important aspects of semantics of pointers in C programs.  ... 
doi:10.1145/3290375 fatcat:vfg7amihejfhnmhxilxqi55v74

Portable Software Fault Isolation

Joshua A. Kroll, Gordon Stewart, Andrew W. Appel
2014 2014 IEEE 27th Computer Security Foundations Symposium  
Unlike traditional SFI, which relies on analysis of assembly-level programs, we analyze and rewrite programs in a compiler intermediate language, the Cminor language of the CompCert C compiler.  ...  By composing our program transformer with the verified back-end of CompCert and leveraging CompCert's formally proved preservation of the behavior of safe programs, we can obtain binary modules that satisfy  ...  Because CompCert is an ANSI C compiler, the semantics, even at the Cminor intermediate representation, reflect the semantics of ANSI C.  ... 
doi:10.1109/csf.2014.10 dblp:conf/csfw/KrollSA14 fatcat:3nbs6e6gtza5veoggnepamndeu

Relaxed-memory concurrency and verified compilation

Jaroslav Ŝevčik, Viktor Vafeiadis, Francesco Zappa Nardelli, Suresh Jagannathan, Peter Sewell
2011 SIGPLAN notices  
In this paper, we consider the semantic design and verified compilation of a C-like programming language for concurrent sharedmemory computation above x86 multiprocessors.  ...  We discuss a strategy for verifying compilation from ClightTSO to x86, which we validate with correctness proofs (building on CompCert) for the most interesting compiler phases.  ...  Acknowledgements We thank Xavier Leroy for enlightening discussions and for making CompCert available.  ... 
doi:10.1145/1925844.1926393 fatcat:lycmh32gzzfwrmdjbk3kilnwhe

Relaxed-memory concurrency and verified compilation

Jaroslav Ŝevčik, Viktor Vafeiadis, Francesco Zappa Nardelli, Suresh Jagannathan, Peter Sewell
2011 Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '11  
In this paper, we consider the semantic design and verified compilation of a C-like programming language for concurrent sharedmemory computation above x86 multiprocessors.  ...  We discuss a strategy for verifying compilation from ClightTSO to x86, which we validate with correctness proofs (building on CompCert) for the most interesting compiler phases.  ...  Acknowledgements We thank Xavier Leroy for enlightening discussions and for making CompCert available.  ... 
doi:10.1145/1926385.1926393 dblp:conf/popl/SevcikVNJS11 fatcat:o4p6zvhpqbhb5b4nte5w6afb6i

Formal Verification of a C Value Analysis Based on Abstract Interpretation [article]

Sandrine Blazy , André Maroneze
2013 arXiv   pre-print
The mechanized proof is facilitated by a translation validation of a Bourdoncle fixpoint iterator. The work has been integrated into the CompCert verified C-compiler.  ...  Our verified analysis directly operates over an intermediate language of the compiler having the same expressiveness as C.  ...  We thank Jacques-Henri Jourdan and Xavier Leroy for integrating the CFG language into the CompCert compiler.  ... 
arXiv:1304.3596v1 fatcat:gn44oci6obfnhmax6sktbdu45u

Formal verification of a realistic compiler

Xavier Leroy
2009 Communications of the ACM  
This paper reports on the development and formal verification (proof of semantic preservation) of CompCert, a compiler from Clight (a large subset of the C programming language) to PowerPC assembly code  ...  Such a verified compiler is useful in the context of critical software and its formal verification: the verification of the compiler guarantees that the safety properties proved on the source code hold  ...  Programming and running the compiler We use Coq not only as a prover to conduct semantic preservation proofs, but also as a programming language to write all verified parts of the CompCert compiler.  ... 
doi:10.1145/1538788.1538814 fatcat:s257oqdrs5davejppnzzo44qse

Formal Verification of a C Value Analysis Based on Abstract Interpretation [chapter]

Sandrine Blazy, Vincent Laporte, André Maroneze, David Pichardie
2013 Lecture Notes in Computer Science  
The mechanized proof is facilitated by a translation validation of a Bourdoncle fixpoint iterator. The work has been integrated into the CompCert verified C-compiler.  ...  Our verified analysis directly operates over an intermediate language of the compiler having the same expressiveness as C.  ...  We thank Jacques-Henri Jourdan and Xavier Leroy for integrating the CFG language into the CompCert compiler.  ... 
doi:10.1007/978-3-642-38856-9_18 fatcat:3pixot2mcbe6rlv5ymnkj32wii

CompCertTSO

Jaroslav Ševčík, Viktor Vafeiadis, Francesco Zappa Nardelli, Suresh Jagannathan, Peter Sewell
2013 Journal of the ACM  
Relaxed memory models are complex in themselves, and a verified compiler such as CompCert is complex even in the sequential case; to make verified compilation for a concurrent relaxed-memory language feasible  ...  In this paper, we consider the semantic design and verified compilation of a C-like programming language for concurrent shared-memory computation on x86 multiprocessors.  ...  ACKNOWLEDGMENT We thank Xavier Leroy for enlightening discussions and comments on drafts, and for making CompCert available, and the anonymous reviewers for their helpful remarks.  ... 
doi:10.1145/2487241.2487248 fatcat:xg3dizzc6barvjs2kuktpw2qai

Certified computer-aided cryptography

José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, François Dupressoir
2013 Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security - CCS '13  
The framework also incorporates an extension of the CompCert certified compiler to support trusted libraries providing complex arithmetic calculations or instantiating idealised components such as sampling  ...  This certified compiler allows us to carry to executable code the security guarantees established at the high-level, and is also instrumented to detect when compilation may interfere with side-channel  ...  This work is part-financed by National Funds through the FCT -Fundação para a Ciência e a Tecnologia (Portuguese Foundation for Science and Technology) within project ENIAC/2224/2009 and by ENIAC Joint  ... 
doi:10.1145/2508859.2516652 dblp:conf/ccs/AlmeidaBBD13 fatcat:34jck323kjhjvlcycoqewkyk7i

CompCertELF: verified separate compilation of C programs into ELF object files

Yuting Wang, Xiangzhe Xu, Pierre Wilke, Zhong Shao
2020 Proceedings of the ACM on Programming Languages (PACMPL)  
Previous work on Stack-Aware CompCert provides a verified compilation chain from C programs to assembly programs with a realistic machine memory model.  ...  CompCert supports large-scale verification via verified separate compilation: C modules can be written and compiled separately, and then linked together to get a target program that refines the semantics  ...  The fourth author is a co-founder of and has an equity interest in CertiK Global Ltd.  ... 
doi:10.1145/3428265 fatcat:vrbkx6rlhrc2ljg5drwjt7jcei

A Formally-Verified Alias Analysis [chapter]

Valentin Robert, Xavier Leroy
2012 Lecture Notes in Computer Science  
The analysis is designed to fit in the Comp-Cert C verified compiler, supporting future aggressive optimizations over memory accesses. partial ordering ge, an upper bound operation lub, and a smallest  ...  This paper reports on the formalization and proof of soundness, using the Coq proof assistant, of an alias analysis: a static analysis that approximates the flow of pointer values.  ...  The distinguishing feature of CompCert C is that it is formally verified using the Coq proof assistant: a formal, operational semantics is given to every source, intermediate and target language used in  ... 
doi:10.1007/978-3-642-35308-6_5 fatcat:kbmd4sl4ebhqfdglcuc5fse6ca

Deep Specifications and Certified Abstraction Layers

Ronghui Gu, Jérémie Koenig, Tahina Ramananandro, Zhong Shao, Xiongnan (Newman) Wu, Shu-Chun Weng, Haozhong Zhang, Yu Guo
2015 Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL '15  
In the latter case, plain integers can be treated as pointers to user memory, as opposed to kernel memory modeled as the CompCert-style concrete memory state However, for the sake of presentation, we are  ...  and each pointer as an integer index (Z) to the tdq or tcb array.  ... 
doi:10.1145/2676726.2676975 dblp:conf/popl/GuKRSWWZG15 fatcat:fqfoza7fg5gxxoop4ihhu5dlgi
« Previous Showing results 1 — 15 out of 114 results