<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    <title>Project-Team:CELTIQUE</title>
    <link rel="stylesheet" href="../static/css/raweb.css" type="text/css"/>
    <meta name="description" content="New Results - Certified Compilation"/>
    <meta name="dc.title" content="New Results - Certified Compilation"/>
    <meta name="dc.creator" content="Sandrine Blazy"/>
    <meta name="dc.creator" content="Frédéric Besson"/>
    <meta name="dc.creator" content="Pierre Wilke"/>
    <meta name="dc.creator" content="Alexandre Dang"/>
    <meta name="dc.subject" content=""/>
    <meta name="dc.publisher" content="INRIA"/>
    <meta name="dc.date" content="(SCHEME=ISO8601) 2016-01"/>
    <meta name="dc.type" content="Report"/>
    <meta name="dc.language" content="(SCHEME=ISO639-1) en"/>
    <meta name="projet" content="CELTIQUE"/>
    <script type="text/javascript" src="https://raweb.inria.fr/rapportsactivite/RA2016/static/MathJax/MathJax.js?config=TeX-MML-AM_CHTML">
      <!--MathJax-->
    </script>
  </head>
  <body>
    <div class="tdmdiv">
      <div class="logo">
        <a href="http://www.inria.fr">
          <img style="align:bottom; border:none" src="../static/img/icons/logo_INRIA-coul.jpg" alt="Inria"/>
        </a>
      </div>
      <div class="TdmEntry">
        <div class="tdmentete">
          <a href="uid0.html">Project-Team Celtique</a>
        </div>
        <span>
          <a href="uid1.html">Members</a>
        </span>
      </div>
      <div class="TdmEntry">Overall Objectives<ul><li><a href="./uid3.html">Project overview</a></li></ul></div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid5.html&#10;&#9;&#9;  ">JSCert</a></li><li><a href="uid10.html&#10;&#9;&#9;  ">Javalib</a></li><li><a href="uid14.html&#10;&#9;&#9;  ">SAWJA</a></li><li><a href="uid19.html&#10;&#9;&#9;  ">Timbuk</a></li><li><a href="uid23.html&#10;&#9;&#9;  ">CompCertSSA</a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li><a href="uid31.html&#10;&#9;&#9;  ">Monitoring attacker
knowledge with information flow analysis</a></li><li><a href="uid32.html&#10;&#9;&#9;  ">Semantic analysis of
functional specifications of system software</a></li><li><a href="uid33.html&#10;&#9;&#9;  ">Certified Static Analyses</a></li><li class="tdmActPage"><a href="uid36.html&#10;&#9;&#9;  ">Certified Compilation</a></li><li><a href="uid37.html&#10;&#9;&#9;  ">Mechanical Verification of SSA-based Compilation Techniques</a></li><li><a href="uid38.html&#10;&#9;&#9;  ">Semantics for shared-memory concurrency</a></li><li><a href="uid39.html&#10;&#9;&#9;  ">Static analysis of functional programs
using tree automata and term rewriting</a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid41.html&#10;&#9;&#9;  ">Regional Initiatives</a></li><li><a href="uid43.html&#10;&#9;&#9;  ">National Initiatives</a></li><li><a href="uid50.html&#10;&#9;&#9;  ">European Initiatives</a></li><li><a href="uid59.html&#10;&#9;&#9;  ">International Initiatives</a></li><li><a href="uid78.html&#10;&#9;&#9;  ">International Research Visitors</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid88.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid135.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li><li><a href="uid182.html&#10;&#9;&#9;  ">Popularization</a></li></ul></div>
      <div class="TdmEntry">
        <div>Bibliography</div>
      </div>
      <div class="TdmEntry">
        <ul>
          <li>
            <a id="tdmbibentmajor" href="bibliography.html">Major publications</a>
          </li>
          <li>
            <a id="tdmbibentyear" href="bibliography.html#year">Publications of the year</a>
          </li>
          <li>
            <a id="tdmbibentfoot" href="bibliography.html#References">References in notes</a>
          </li>
        </ul>
      </div>
    </div>
    <div id="main">
      <div class="mainentete">
        <div id="head_agauche">
          <small><a href="http://www.inria.fr">
	    
	    Inria
	  </a> | <a href="../index.html">
	    
	    Raweb 
	    2016</a> | <a href="http://www.inria.fr/en/teams/celtique">Presentation of the Project-Team CELTIQUE</a> | <a href="http://www.irisa.fr/celtique">CELTIQUE Web Site
	  </a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="celtique.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="celtique.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-celtique-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../celtique/celtique.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-celtique-epub.png"/>
                </a>
              </td>
            </tr>
            <tr>
              <td/>
              <td>PDF
</td>
              <td>e-Pub
</td>
            </tr>
          </table>
        </div>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid33.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid37.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
      <div id="textepage">
        <!--DEBUT2 du corps du module-->
        <h2>Section: 
      New Results</h2>
        <h3 class="titre3">Certified Compilation</h3>
        <p class="participants"><span class="part">Participants</span> :
	Sandrine Blazy, Frédéric Besson, Pierre Wilke, Alexandre Dang.</p>
        <p>The <span class="smallcap">CompCert </span> C compiler provides the formal guarantee that the observable
behaviour of the compiled code improves on the observable behaviour of the
source code. A first limitation of this guarantee is that if the source code
goes wrong, i.e.  does not have a well-defined behaviour, any compiled
code is compliant. Another limitation is that <span class="smallcap">CompCert </span> 's notion of
observable behaviour is restricted to IO events.</p>
        <p>Over the past years, we have developed the semantics theory so that unlike
<span class="smallcap">CompCert </span> but like <span class="smallcap">Gcc </span>, the binary representation of pointers can be
manipulated much like integers and where memory is a finite resource.
We have now a formally verified C compiler, <span class="smallcap">CompCertS </span>, which is essentially the <span class="smallcap">CompCert </span> compiler, albeit
with a stronger formal guarantee.
The semantics preservation theorem applies to a wider class of existing C
programs and, therefore, their compiled version benefits from the formal
guarantee of <span class="smallcap">CompCertS </span>.
<span class="smallcap">CompCertS </span> preserves not only the observable behaviour of programs but also
ensures that the memory consumption is preserved by the compiler. As a result,
we have the formal guarantee that the compiled code requires no more memory
than the source code. This ensures that the absence of stack-overflows is
preserved by compilation.</p>
        <p>The whole proof of <span class="smallcap">CompCertS </span> represents a significant proof-effort and the details
can be found in Pierre Wilke's PhD thesis  <a href="./bibliography.html#celtique-2016-bid6">[39]</a>.</p>
        <p><span class="smallcap">CompCertS </span> also implements the Portable Software Fault Isolation approach
pioneered by Kroll <i>et al.</i> <a href="./bibliography.html#celtique-2016-bid7">[38]</a>. The advantage of <span class="smallcap">CompCertS </span> is that
the masking operation of pointers has a defined semantics
and can therefore be directly reasoned about.</p>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid33.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid37.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
    </div>
  </body>
</html>
