source functions
# Title.
-export title="qemu"
+export title="qemu’s range_is_empty()"
# History.
remember 'cat snippets/range_is_empty.c'
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Frama-C</h1>
+
+<p>
+Frama-C — Framework for Static Analysis of the C language
+</p>
+
+<h2>Core</h2>
+
+<p>
+C source code → Abstract Syntax Tree
+</p>
+
+<h2>Plugins</h2>
+
+<p>
+Annotate syntax trees with static analysis.
+</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Frama-C</h1>
+
+<img src="slides/slide01.png" height="75%" />
+
+<p class="attribution">
+Slides from
+<a href="https://www.cs.umd.edu/class/spring2016/cmsc838G/frama-c/introduction-to-frama-c_v2.pdf">David Mentré’s 2016 introduction to Frama-C</a>.
+</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Frama-C</h1>
+
+<img src="slides/slide02.png" height="75%" />
+
+<p class="attribution">
+Slides from
+<a href="https://www.cs.umd.edu/class/spring2016/cmsc838G/frama-c/introduction-to-frama-c_v2.pdf">David Mentré’s 2016 introduction to Frama-C</a>.
+</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Frama-C</h1>
+
+<img src="slides/slide03.png" height="75%" />
+
+<p class="attribution">
+Slides from
+<a href="https://www.cs.umd.edu/class/spring2016/cmsc838G/frama-c/introduction-to-frama-c_v2.pdf">David Mentré’s 2016 introduction to Frama-C</a>.
+</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Frama-C</h1>
+
+<img src="slides/slide04.png" height="75%" />
+
+<p class="attribution">
+Slides from
+<a href="https://www.cs.umd.edu/class/spring2016/cmsc838G/frama-c/introduction-to-frama-c_v2.pdf">David Mentré’s 2016 introduction to Frama-C</a>.
+</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Frama-C</h1>
+
+<img src="slides/slide05.png" height="75%" />
+
+<p class="attribution">
+Slides from
+<a href="https://www.cs.umd.edu/class/spring2016/cmsc838G/frama-c/introduction-to-frama-c_v2.pdf">David Mentré’s 2016 introduction to Frama-C</a>.
+</p>
\f
= OVERVIEW OF FRAMA-C ECOSYSTEM =
+Let's interrupt this and talk about Frama-C. The name stands
+for "Framework for Static Analysis of the C language".
-XXX Modular Framework for analysis of C
-
-XXX Take some slides from David Mentre's presentation.
-
-XXX Explain which companies are using Frama-C.
-
-XXX WP plugin
-
-XXX ACSL language
-
+It's modular, with a core program that reads C source code
+and turns it into Abstract Syntax Trees. And a set of plugins
+to do static analysis by annotating these syntax trees.
+Plugins can cooperate, so analysis can be passed between
+plugins.
+The following slides are taken from David Mentré‘s 2016 presentation.
\f
= BACK TO RANGE.C =
--- /dev/null
+These slides taken from David Mentré's presentation:
+https://www.cs.umd.edu/class/spring2016/cmsc838G/frama-c/introduction-to-frama-c_v2.pdf