<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Tutorial on Analysis and Veri cation of Imperative Programs through CLP</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>John Gallagher</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Roskilde University, Denmark and IMDEA Software Institute</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <abstract>
        <p />
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>In this tutorial we show how constraint logic programs (CLP) provide a exible framework
for analysis and veri cation of other languages. Here the focus is on analysing imperative
programming languages. It is rst necessary to translate a given imperative program into
CLP clauses. Di erent approaches to automatic translation based on small-step or
bigstep semantics will be shown, along with their advantages and disadvantages. The role
of query-answer transforms in the translation process is also presented. The problem of
analysing or verifying properties of an imperative program is thus translated into a CLP
analysis or veri cation problem. The main CLP analysis technique covered in this tutorial
is the computation of approximate models of CLP clauses using abstract interpretation
over numeric or symbolic abstract domains. The tutorial contains a survey of analysis
and veri cation problems for imperative programs that have been successfully tackled in
this way, including veri cation of safety properties in sequential and concurrent programs,
termination, resource analysis and shape analysis.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>