<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Eric Bodden &#187; Typestate</title>
	<atom:link href="http://www.bodden.de/tag/typestate/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bodden.de</link>
	<description>Easy and efficient software verification</description>
	<lastBuildDate>Tue, 27 Jul 2010 17:50:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>New ICSE paper: Efficient Hybrid Typestate Analysis by Determining Continuation-Equivalent States</title>
		<link>http://www.bodden.de/2010/01/21/icse-2010-camera-ready/</link>
		<comments>http://www.bodden.de/2010/01/21/icse-2010-camera-ready/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 12:45:57 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Research Blog]]></category>
		<category><![CDATA[Clara]]></category>
		<category><![CDATA[ICSE]]></category>
		<category><![CDATA[Typestate]]></category>

		<guid isPermaLink="false">http://www.bodden.de/2010/01/21/icse-2010-camera-ready/</guid>
		<description><![CDATA[I am happy to announce that the camera-ready version of my ICSE paper is available now. The topic is on a special kind of static typestate analysis that I developed to soundly disable unnecessary instrumentation for monitoring typestate properties at runtime. The implementation is available in Clara.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvcHVicy9ib2RkZW4xMGVmZmljaWVudC5wZGY=" ><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="Screen shot 2010-01-21 at 13.46.04" border="0" alt="Screen shot 2010-01-21 at 13.46.04" align="right" src="http://www.bodden.de/wordpress/wp-content/uploads/wlw-images/NewICSEpaperEfficientHybridTypestateAnal_C222/Screenshot20100121at13.46.04.png" width="189" height="244" /></a> I am happy to announce that the camera-ready version of my ICSE paper is <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvcHVicy9ib2RkZW4xMGVmZmljaWVudC5wZGY=" class=\"lipdf\">available now</a>. The topic is on a special kind of static typestate analysis that I developed to soundly disable unnecessary instrumentation for monitoring typestate properties at runtime. The implementation is available in <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEv" class=\"liinternal\">Clara</a>.</p>
 <img src="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=943" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.bodden.de/2010/01/21/icse-2010-camera-ready/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Tech Report: Efficient and Precise Typestate Analysis by Determining Continuation-Equivalent States</title>
		<link>http://www.bodden.de/2009/09/10/continuation-equivalent-states/</link>
		<comments>http://www.bodden.de/2009/09/10/continuation-equivalent-states/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 12:42:33 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Research Blog]]></category>
		<category><![CDATA[Clara]]></category>
		<category><![CDATA[Static Analysis]]></category>
		<category><![CDATA[Typestate]]></category>

		<guid isPermaLink="false">http://www.bodden.de/2009/09/10/new-tech-report-efficient-and-precise-typestate-analysis-by-determining-continuation-equivalent-states/</guid>
		<description><![CDATA[I just uploaded a new Technical Report. The report (currently under submission) describes a novel typestate analysis, called Nop-Shadows Analysis,&#160; that I implemented for my doctoral dissertation. The analysis is certainly one of my dissertation’s major technical contributions. I implemented the Nop-Shadows Analysis in the Clara framework, which means that you are welcome to download [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvcHVicy90ci1jbGFyYS0xLnBkZg==" ><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.bodden.de/wordpress/wp-content/uploads/wlw-images/NewTechReportEfficientandPreciseTypestat_CF0A/image.png" width="170" height="210" /></a> </p>
<p>I just uploaded a new <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvcHVicy90ci1jbGFyYS0xLnBkZg==" class=\"lipdf\">Technical Report</a>. The report (currently under submission) describes a novel typestate analysis, called <strong>Nop-Shadows Analysis</strong>,&#160; that I implemented for my doctoral dissertation. The analysis is certainly one of my dissertation’s major technical contributions. I implemented the Nop-Shadows Analysis in <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEv" class=\"liinternal\">the Clara framework</a>, which means that you are welcome to <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG93bmxvYWRzLw==" class=\"liinternal\">download it</a>, <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi91c2luZy1jbGFyYS8=" class=\"liinternal\">try it out</a> or <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9leGlzdGluZy1hbmFseXNlcy1pbi1jbGFyYS8=" class=\"liinternal\">extend it</a>.</p>
<h3>Continuation-equivalent states</h3>
<p>So what are these continuation-equivalent states that appear in the title? We say that two automaton states <em>s1</em> and <em>s2</em> are continuation-equivalent if, given the current code location and all possible continuations of the execution after this location we either will or won’t reach a violating typestate <em>regardless</em> of whether we are in <em>s1</em> or <em>s2</em>. Maybe an example is in order… (taken from the paper)</p>
<p><a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvd29yZHByZXNzL3dwLWNvbnRlbnQvdXBsb2Fkcy93bHctaW1hZ2VzL05ld1RlY2hSZXBvcnRFZmZpY2llbnRhbmRQcmVjaXNlVHlwZXN0YXRfQ0YwQS9pbWFnZV8zLnBuZw==" rel=\"lightbox\"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="State machine for ConnectionClosed property" border="0" alt="State machine for ConnectionClosed property" align="right" src="http://www.bodden.de/wordpress/wp-content/uploads/wlw-images/NewTechReportEfficientandPreciseTypestat_CF0A/image_thumb.png" width="170" height="77" /></a> </p>
<p>Assume that we want to evaluate the “ConnectionClosed” property that is depicted by the state machine on the right. The property says that it is an error to write to a closed Connection (where connections can alternate between an “connected” and a “closed” state through “close” and “reconnect” operations. Next, assume that we want to statically evaluate this property on the following simple program…</p>
<p><a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvd29yZHByZXNzL3dwLWNvbnRlbnQvdXBsb2Fkcy93bHctaW1hZ2VzL05ld1RlY2hSZXBvcnRFZmZpY2llbnRhbmRQcmVjaXNlVHlwZXN0YXRfQ0YwQS9pbWFnZV80LnBuZw==" rel=\"lightbox\"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="Example" border="0" alt="Example" align="right" src="http://www.bodden.de/wordpress/wp-content/uploads/wlw-images/NewTechReportEfficientandPreciseTypestat_CF0A/image_thumb_3.png" width="170" height="70" /></a> </p>
<p>The figure on the right shows a program that is annotated with the analysis information that the Nop-Shadows Analysis computes. The example program violates the connection property by closing the connection (even twice, at lines 5 and 6), and then writing to the connection (line 7). Note, though, that all other statements in this program are irrelevant to the property violation. In particular, one does not need to monitor the “close” and “reconnect” operations at lines 3 and 4 because they precede the violating fragment of the run. Conversely, the operations at lines 8 to 10 follow this fragment, and hence do not need to be monitored either. A little more subtle, even of the the two“close” events at lines 5 and 6, it is correct to omit monitoring one of them. (But not   <br />both!) The static analysis that we present in the paper will eliminate the instrumentation at exactly those shadows that we just identified as irrelevant—“nop shadows”, as we call them. Instrumentation will only remain in lines 5 and 7, or 6 and 7—an optimal result for this program.</p>
<p>The Nop-Shadow Analysis uses a deterministic finite-state machines for the mirror language of the original automaton’s language (see Figure 4b) to construct for every statement a partitioning of automaton states. States that are in the same class of the partition are continuation-equivalent. For instance, at line 3, which transitions from state 0 to 1, states {0,1,2} are all continuation-equivalent. Therefore there is no need to monitor the transition at this line – the transition is irrelevant!</p>
<h3>Results</h3>
<p><a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvd29yZHByZXNzL3dwLWNvbnRlbnQvdXBsb2Fkcy93bHctaW1hZ2VzL05ld1RlY2hSZXBvcnRFZmZpY2llbnRhbmRQcmVjaXNlVHlwZXN0YXRfQ0YwQS9pbWFnZV81LnBuZw==" rel=\"lightbox\"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="Results" border="0" alt="Results" align="right" src="http://www.bodden.de/wordpress/wp-content/uploads/wlw-images/NewTechReportEfficientandPreciseTypestat_CF0A/image_thumb_4.png" width="154" height="68" /></a> The analysis has several nice properties. Firstly, it is relatively efficient, and it is precise (see Figure). Also, it seems to be the first analysis of its kind (a flow-sensitive typestate analysis generating residual runtime monitors) that is sound. Unfortunately, we found an unsoundness problem in two analyses that we and others published earlier. The paper describes this problem in the related-work section. For my dissertation, I proved the novel Nop-Shadows Analysis sound, which was relatively easy because the analysis follows a relatively simple design.</p>
 <img src="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=912" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.bodden.de/2009/09/10/continuation-equivalent-states/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now available: Clara, a novel framework for implementing hybrid typestate analyses</title>
		<link>http://www.bodden.de/2009/09/10/clara-is-here/</link>
		<comments>http://www.bodden.de/2009/09/10/clara-is-here/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 12:09:35 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Research Blog]]></category>
		<category><![CDATA[Clara]]></category>
		<category><![CDATA[Runtime Monitoring]]></category>
		<category><![CDATA[Runtime verification]]></category>
		<category><![CDATA[Static Analysis]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[tracematches]]></category>
		<category><![CDATA[Typestate]]></category>

		<guid isPermaLink="false">http://www.bodden.de/2009/09/10/clara-is-here/</guid>
		<description><![CDATA[In my doctoral dissertation (click here for a draft), I present Clara (Compile-time Approximation of Runtime Analyses), a novel research framework for the implementation of hybrid typestate analyses. Clara is now online – fully documented – at: http://www.bodden.de/clara/ Typestate properties aid program understanding, and one can even define type systems that prevent programmers from causing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEv" ><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="Clara" border="0" alt="Clara" align="left" src="http://www.bodden.de/wordpress/wp-content/uploads/wlw-images/NowavailableClaraanovelframeworkforimple_C756/bug_thumb.jpg" width="554" height="142" /></a>In my doctoral <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvcHVicy9ib2RkZW4wOXBoZHRoZXNpcy5wZGY=" class=\"lipdf\">dissertation (click here for a draft),</a> I present <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEv" class=\"liinternal\">Clara (Compile-time Approximation of Runtime Analyses)</a>, a novel research framework for the implementation of hybrid typestate analyses. Clara is now online – fully documented – at: <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEv" class=\"liinternal\"><strong>http://www.bodden.de/clara/</strong></a></p>
<p>Typestate properties aid program understanding, and one can even define type systems that prevent programmers from causing typestate errors, or derive static typestate analyses that try to determine whether a given program violates typestate properties. Unfortunately, the typestate-analysis problem is generally undecidable. Researchers have therefore proposed a hybrid approach that uses   <br />static-analysis results to generate a residual runtime monitor. This monitor captures actual property violations as they occur, but only updates its internal state at relevant statements, as determined through static analysis.</p>
<p>Clara allows researchers to implement such hybrid typestate analyses with a minimal amount of code.</p>
<h3>For Researchers, Clara offers:</h3>
<ul>
<li>a convenient specification format for typestate properties, called <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9zcGVjaWZ5aW5nLXR5cGVzdGF0ZS1wcm9wZXJ0aWVzL2RlcGVuZGVuY3ktc3RhdGUtbWFjaGluZXMv" class=\"liinternal\">Dependency State Machines</a>, </li>
<li>an <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9jb21wb25lbnRzLWZlYXR1cmVzLWFic3RyYWN0aW9ucy8=" class=\"liinternal\">extensible framework</a> to <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9ob3ctdG8taW1wbGVtZW50LWEtdHlwZXN0YXRlLWFuYWx5c2lzLw==" class=\"liinternal\">implement static typestate analyses</a> quickly and with high quality, </li>
<li>automatic support for generating <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9jb21wb25lbnRzLWZlYXR1cmVzLWFic3RyYWN0aW9ucy8=" class=\"liinternal\">residual</a> <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9jbGFyYS1hbmQtcnVudGltZS1tb25pdG9ycy8=" class=\"liinternal\">runtime monitors</a>, even for collaborative runtime verification, and </li>
<li>a platform to share specifications and compare analysis results. </li>
</ul>
<h4>For Developers, Clara offers:</h4>
<ul>
<li>tool support to <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9zcGVjaWZ5aW5nLXR5cGVzdGF0ZS1wcm9wZXJ0aWVzL2RlcGVuZGVuY3ktc3RhdGUtbWFjaGluZXMv" class=\"liinternal\">precisely define the behavioral interface</a> of an application, </li>
<li>tool support to <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9leGlzdGluZy1hbmFseXNlcy1pbi1jbGFyYS8=" class=\"liinternal\">check whether client code fulfills these specifications</a>, and if not </li>
<li>the possibility to have a <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9jbGFyYS1hbmQtcnVudGltZS1tb25pdG9ycy8=" class=\"liinternal\">residual runtime monitor</a> that deals with property violations just-in-time.</li>
</ul>
<p>We wish to extend Clara in the future. Please join our <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3VwL2NsYXJhLWZyYW1ld29yaw==" class=\"liexternal\">mailing list</a> if you want to stay tuned on further developments. Or, if you even feel like extending Clara with your own analyses, <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG93bmxvYWRzLw==" class=\"liinternal\">download</a> the tool and, if you feel like it, <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG93bmxvYWRzLw==" class=\"liinternal\">drop us a line</a>. </p>
<ul></ul>
<h3>Details about the Clara framework</h3>
<p><a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvd29yZHByZXNzL3dwLWNvbnRlbnQvdXBsb2Fkcy93bHctaW1hZ2VzL05vd2F2YWlsYWJsZUNsYXJhYW5vdmVsZnJhbWV3b3JrZm9yaW1wbGVfQzc1Ni9pbWFnZS5wbmc=" rel=\"lightbox\"><img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Overview of Clara" border="0" alt="Overview of Clara" align="right" src="http://www.bodden.de/wordpress/wp-content/uploads/wlw-images/NowavailableClaraanovelframeworkforimple_C756/image_thumb.png" width="170" height="88" /></a> Clara’s major design goal is to de-couple the code-generation for efficient runtime monitors from the static analyses that convert these monitors into faster, residual monitors. The figure to the right gives an overview of Clara. With Clara, the researcher first defines a set of typestate properties, denoting each property as an annotation to an <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hc3BlY3RqLw==" class=\"liexternal\">AspectJ</a> aspect that implements a runtime monitor for the same property. <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9zcGVjaWZ5aW5nLXR5cGVzdGF0ZS1wcm9wZXJ0aWVzL2RlcGVuZGVuY3ktc3RhdGUtbWFjaGluZXMv" class=\"liinternal\">Annotations</a> directly encode a non-deterministic finite-state machine. In my dissertation, I show how researchers can even use runtime- monitoring approaches like <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2FiYy5jb21sYWIub3guYWMudWsvcGFwZXJzI29vcHNsYTIwMDU=" class=\"liexternal\">tracematches</a>, <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZzbC5jcy51aXVjLmVkdS9tb3A=" class=\"liexternal\">JavaMOP</a>, and others, to generate these annotated aspects automatically from high-level monitor specifications.</p>
<p>Clara weaves the monitoring aspect into the program under test and emits helper classes that implement the run- time monitor as defined by the aspect. Clara extends the&#160; <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2FzcGVjdGJlbmNoLm9yZy8=" class=\"liexternal\">AspectBench Compiler</a> for this purpose. Clara then invokes its <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9leGlzdGluZy1hbmFseXNlcy1pbi1jbGFyYS8=" class=\"liinternal\">static-typestate-analysis engine</a>. Researchers can add a number of static analyses to Clara and have them applied in any order. These analyses obtain, through the <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUvY2xhcmEvZG9jdW1lbnRhdGlvbi9zcGVjaWZ5aW5nLXR5cGVzdGF0ZS1wcm9wZXJ0aWVzL2RlcGVuZGVuY3ktc3RhdGUtbWFjaGluZXMv" class=\"liinternal\">finite-state machine defined in the aspect’s annotation</a>, enough in- formation about the typestate property to precisely approximate the set of relevant instrumentation points. When an analysis determines that an instrumentation point is irrelevant to a property, i.e., the program can neither violate the property nor prevent a property violation at this point, then Clara automatically disables the instrumentation for this property at this point. The result is an optimized instrumented program that updates the runtime monitor only at program points at which instrumentation remains enabled.</p>
<p><a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2FzcGVjdGJlbmNoLm9yZy8=" ><img style="display: inline; margin-left: 0px; margin-right: 0px" align="right" src="http://abc.comlab.ox.ac.uk/images/logo-standard.png" /></a>Clara originated as <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ib2RkZW4uZGUv" class=\"liinternal\">Eric Bodden</a>&#8216;s doctoral-thesis project at the <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zYWJsZS5tY2dpbGwuY2Ev" class=\"liexternal\">Sable Research Group</a>. The design and implementation of Clara was greatly influenced by the work of this group and the <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3Byb2d0b29scy5jb21sYWIub3guYWMudWsv" class=\"liexternal\">Programming Tools Group</a> at the University of Oxford, specifically <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zYWJsZS5tY2dpbGwuY2EvfmhlbmRyZW4v" class=\"liexternal\">Laurie Hendren</a>, <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3BhdHJpY2tsYW0uY2Ev" class=\"liexternal\"></a><a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3Byb2d0b29scy5jb21sYWIub3guYWMudWsv" class=\"liexternal\"></a><a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9wcm9qZWN0cy9wb2x5Z2xvdC8=" ><img class="alignright" title="Polyglot" alt="" src="http://www.cs.cornell.edu/projects/polyglot/images/polyglot-logo3.png" width="40" /></a></a>Patrick Lam</a>, <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5jb21sYWIub3guYWMudWsvcGVvcGxlL29lZ2UuZGVtb29yLw==" class=\"liexternal\">Oege de Moor</a>, <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3Byb2d0b29scy5jb21sYWIub3guYWMudWsvbWVtYmVycy9wYXZlbA==" class=\"liexternal\">Pavel Avgustinov</a> and <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5jb21sYWIub3guYWMudWsvcGVvcGxlL0p1bGlhbi5UaWJibGUv" class=\"liexternal\">Julian Tibble</a>. Clara uses technogies from the <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5hc3BlY3RiZW5jaC5vcmcv" rel=\"nofollow\" class=\"liexternal\">AspectBench Compiler</a>, <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zYWJsZS5tY2dpbGwuY2Evc29vdC8=" rel=\"nofollow\" class=\"liexternal\">Soot</a>, <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2phc3RhZGQub3JnLw==" rel=\"nofollow\" class=\"liexternal\">JastAdd</a>, <a href="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9wcm9qZWN0cy9wb2x5Z2xvdC8=" rel=\"nofollow\" class=\"liexternal\">polyglot</a> and other open-source projects. </p>
 <img src="http://www.bodden.de/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=907" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.bodden.de/2009/09/10/clara-is-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
