<?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>dvanhorn @ λ-calcul.us &#187; CFA</title>
	<atom:link href="http://dvanhorn.lambda-calcul.us/category/cfa/feed/" rel="self" type="application/rss+xml" />
	<link>http://dvanhorn.lambda-calcul.us</link>
	<description>Research weblog for David Van Horn</description>
	<lastBuildDate>Sat, 28 Aug 2010 13:39:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Doctor JS</title>
		<link>http://dvanhorn.lambda-calcul.us/2010/08/26/doctor-js/</link>
		<comments>http://dvanhorn.lambda-calcul.us/2010/08/26/doctor-js/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 20:38:43 +0000</pubDate>
		<dc:creator>dvanhorn</dc:creator>
				<category><![CDATA[CFA]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://dvanhorn.lambda-calcul.us/?p=301</guid>
		<description><![CDATA[Tell the Doctor about it. 
Doctor JS is a genius. He&#8217;ll analyze your JavaScript code, complete with: polymorphism, prototypes, exceptions, and callbacks.
DoctorJS is a static analysis tool developed by my PRL lab neighbor, Dimitris Vardoulakis.  It&#8217;s an implementation of Vardoulakis and Olin Shivers&#8216; CFA2&#8212;a context-free approach to control flow analysis. 
Brendan Eich, CTO of [...]]]></description>
			<content:encoded><![CDATA[<p>Tell <a href="http://doctorjs.org/">the Doctor</a> about it. <img style="float: right;" src="http://doctorjs.org/couch.gif" /></p>
<blockquote><p>Doctor JS is a genius. He&#8217;ll analyze your JavaScript code, complete with: polymorphism, prototypes, exceptions, and callbacks.</p></blockquote>
<p>DoctorJS is a static analysis tool developed by my <a href="http://www.ccs.neu.edu/research/prl/">PRL</a> lab neighbor, <a href="http://www.ccs.neu.edu/home/dimvar/info.html">Dimitris Vardoulakis</a>.  It&#8217;s an implementation of Vardoulakis and <a href="http://www.ccs.neu.edu/home/shivers/">Olin Shivers</a>&#8216; <a href="http://www.ccs.neu.edu/home/dimvar/papers/cfa2-NU-CCIS-10-01.pdf">CFA2</a>&#8212;a context-free approach to control flow analysis. </p>
<p>Brendan Eich, CTO of Mozilla and creator of JS, recently blogged about DoctorJS (<a href="http://brendaneich.com/2010/08/static-analysis-ftw/">Static Analysis FTW</a>) and called static analysis one of the best &#8220;researchy&#8221; investments Mozilla has made over the past few years.</p>
]]></content:encoded>
			<wfw:commentRss>http://dvanhorn.lambda-calcul.us/2010/08/26/doctor-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abstracting Abstract Machines: Storing and stacking continuations</title>
		<link>http://dvanhorn.lambda-calcul.us/2010/07/26/abstracting-abstract-machine/</link>
		<comments>http://dvanhorn.lambda-calcul.us/2010/07/26/abstracting-abstract-machine/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 20:17:10 +0000</pubDate>
		<dc:creator>dvanhorn</dc:creator>
				<category><![CDATA[Announce]]></category>
		<category><![CDATA[CFA]]></category>

		<guid isPermaLink="false">http://dvanhorn.lambda-calcul.us/?p=286</guid>
		<description><![CDATA[We&#8217;ve been working on two techniques for systematically deriving abstract interpretations approximating canonical machines for higher-order languages. The first allocates continuations in a bounded store to achieve a finite state-space. We demonstrate the generality of this approach by transforming classical abstract machines into abstract interpreters.

Abstracting Abstract Machines.
David Van Horn and Matthew Might.
The 15th ACM SIGPLAN [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been working on two techniques for systematically deriving abstract interpretations approximating canonical machines for higher-order languages. The first allocates continuations in a bounded store to achieve a finite state-space. We demonstrate the generality of this approach by transforming classical abstract machines into abstract interpreters.</p>
<blockquote><p>
<em>Abstracting Abstract Machines</em>.<br />
David Van Horn and Matthew Might.<br />
The 15th ACM SIGPLAN International Conference on Functional Programming (ICFP&#8217;10), Baltimore, Maryland, September, 2010.</p>
<p>We describe a derivational approach to abstract interpretation that yields novel and transparently sound static analyses when applied to well-established abstract machines. To demonstrate the technique and support our claim, we transform the CEK machine of Felleisen and Friedman, a lazy variant of Krivine&#8217;s machine, and the stack-inspecting CM machine of Clements and Felleisen into abstract interpretations of themselves. The resulting analyses bound temporal ordering of program events; predict return-flow and stack-inspection behavior; and approximate the flow and evaluation of by-need parameters. For all of these machines, we find that a series of well-known concrete machine refactorings, plus a technique we call store-allocated continuations, leads to machines that abstract into static analyses simply by bounding their stores. We demonstrate that the technique scales up uniformly to allow static analysis of realistic language features, including tail calls, conditionals, side effects, exceptions, first-class continuations, and even garbage collection. </p>
<ul>
<li><a href="http://www.ccs.neu.edu/home/dvanhorn/pubs/vanhorn-might-icfp10.pdf">PDF</a></li>
</ul>
</blockquote>
<p>The second technique keeps continuations on the stack to achieve a push-down model of abstract interpretation. The resulting abstract interpreter always matches calls and returns, achieving a higher level of precision by never conflating call and return pairs. Although this technique produces abstract interpreters with infinite state-spaces, we demonstrate how basic static analysis questions remain decidable by casting them as language inclusion problems answered by push-down automata. </p>
<blockquote><p>
<em>Pushdown Control-Flow Analysis of Higher-Order Programs</em>.<br />
Christopher Earl, Matthew Might, and David Van Horn.<br />
The 2010 Workshop on Scheme and Functional Programming (SFP 2010), Montréal, Québec, Canada, August, 2010.</p>
<p>    Context-free approaches to static analysis gain precision over classical approaches by perfectly matching returns to call sites—a property that eliminates spurious interprocedural paths. Vardoulakis and Shivers&#8217;s recent formulation of CFA2 showed that it is possible (if expensive) to apply context-free methods to higher-order languages and gain the same boost in precision achieved over first-order programs.</p>
<p>    To this young body of work on context-free analysis of higher-order programs, we contribute a pushdown control-flow analysis framework, which we derive as an abstract interpretation of a CESK machine with an unbounded stack. One instantiation of this framework marks the first polyvariant pushdown analysis of higher-order programs; another marks the first polynomial-time analysis. In the end, we arrive at a framework for control-flow analysis that can efficiently compute pushdown generalizations of classical control-flow analyses.</p>
<ul>
<li><a href="http://www.ccs.neu.edu/home/dvanhorn/pubs/earl-might-vanhorn-sfp10.pdf">PDF</a></li>
</ul>
</blockquote>
<p>There are also slides (<a href="http://www.ccs.neu.edu/home/dvanhorn/talks/abstracting-abstract-machines-harvard-2010.pdf">PDF</a>) covering both techniques from a talk given at the Harvard PL seminar.</p>
]]></content:encoded>
			<wfw:commentRss>http://dvanhorn.lambda-calcul.us/2010/07/26/abstracting-abstract-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preprint: Resolving and Exploiting the k-CFA Paradox</title>
		<link>http://dvanhorn.lambda-calcul.us/2009/12/10/preprint-k-cfa-paradox/</link>
		<comments>http://dvanhorn.lambda-calcul.us/2009/12/10/preprint-k-cfa-paradox/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 21:08:37 +0000</pubDate>
		<dc:creator>dvanhorn</dc:creator>
				<category><![CDATA[CFA]]></category>

		<guid isPermaLink="false">http://dvanhorn.lambda-calcul.us/?p=187</guid>
		<description><![CDATA[A new preprint by Matthew Might, Yannis Smaragdakis, and David Van Horn.

Preprint
Slides from NEPLS
Implementation

Abstract: 
Low-level program analysis is a fundamental problem, taking the shape of &#8220;flow analysis&#8221; in functional languages and &#8220;points-to&#8221; analysis in imperative and object-oriented (OO) languages. Despite the similarities, the vocabulary and results in the two communities remain largely distinct, with limited [...]]]></description>
			<content:encoded><![CDATA[<p>A new preprint by <a href="http://matt.might.net/">Matthew Might</a>, <a href="http://www.cs.umass.edu/~yannis/">Yannis Smaragdakis</a>, and <a href="http://www.ccs.neu.edu/home/dvanhorn/">David Van Horn</a>.</p>
<ul>
<li><a href="http://www.ccs.neu.edu/home/dvanhorn/pubs/might-smaragdakis-vanhorn-preprint09.pdf">Preprint</a></li>
<li><a href="http://www.ccs.neu.edu/home/dvanhorn/talks/kcfa-paradox-nepls09.pdf">Slides</a> from <a href="http://nepls.org/Events/23/">NEPLS</a></li>
<li><a href="http://www.ucombinator.org/projects/mcfa/">Implementation</a></li>
</ul>
<p>Abstract: </p>
<blockquote><p>Low-level program analysis is a fundamental problem, taking the shape of &#8220;flow analysis&#8221; in functional languages and &#8220;points-to&#8221; analysis in imperative and object-oriented (OO) languages. Despite the similarities, the vocabulary and results in the two communities remain largely distinct, with limited cross-understanding. One of the few links is Shivers&#8217;s <em>k</em>-CFA work, which has advanced the concept of &#8220;context-sensitive analysis&#8221; and is widely known in both communities. Recent results, however, indicate that the relationship between the different incarnations of the analysis is not understood. Van Horn and Mairson proved <em>k</em>-CFA for <em>k</em> ≥ 1 to be EXPTIME-complete, hence no polynomial algorithm exists. Yet there have been multiple polynomial formulations of context-sensitive points-to analyses in OO languages. Is functional <em>k</em>-CFA a profoundly different analysis from OO <em>k</em>-CFA? We resolve this paradox by showing that OO features conspire to make the exact same specification of <em>k</em>-CFA be polynomial-time: objects and closures are subtly different, in a way that interacts crucially with context-sensitivity. This leads to a significant practical result: by emulating the OO approximation, we derive a polynomial hierarchy of context-sensitive CFAs for functional programs, simultaneously achieving high precision and efficiency.</p></blockquote>
<p>Update (2/2010): This work will appear at <a href="http://www.cs.stanford.edu/pldi10/">PLDI 2010</a>.  See you in Toronto!</p>
<p>Update (2/2010): Noticed on LtU: <a href="http://lambda-the-ultimate.org/node/3814">http://lambda-the-ultimate.org/node/3814</a>.</p>
<p>Update (3/2010): Camera-ready version: <a href="http://www.ccs.neu.edu/home/dvanhorn/pubs/might-smaragdakis-vanhorn-pldi10.pdf">http://www.ccs.neu.edu/home/dvanhorn/pubs/might-smaragdakis-vanhorn-pldi10.pdf</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dvanhorn.lambda-calcul.us/2009/12/10/preprint-k-cfa-paradox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOFA Forum</title>
		<link>http://dvanhorn.lambda-calcul.us/2009/10/04/hofa-forum/</link>
		<comments>http://dvanhorn.lambda-calcul.us/2009/10/04/hofa-forum/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 14:17:29 +0000</pubDate>
		<dc:creator>dvanhorn</dc:creator>
				<category><![CDATA[Announce]]></category>
		<category><![CDATA[CFA]]></category>

		<guid isPermaLink="false">http://dvanhorn.lambda-calcul.us/?p=178</guid>
		<description><![CDATA[The Higher-Order Flow Analysis Forum has just been set up:
The HOFA forum is an email forum for the discussion and dissemination of research results in the area of higher-order flow analysis, broadly construed, within computer science and related disciplines. Flow analysis and related static analyses are a fundamental tool for program verification, bug detection, compiler [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://hofa.lambda-calcul.us/">Higher-Order Flow Analysis Forum</a> has just been set up:</p>
<blockquote><p>The HOFA forum is an email forum for the discussion and dissemination of research results in the area of higher-order flow analysis, broadly construed, within computer science and related disciplines. Flow analysis and related static analyses are a fundamental tool for program verification, bug detection, compiler optimization, program understanding, and software maintenance. The HOFA forum aims to facilitate theoretical, practical, and application advances in the area of functional, object-oriented, concurrent, distributed, and mobile programming.</p></blockquote>
<p>Please sign up!  Also, send me email if you or your group would like to be listed on the HOFA site.</p>
]]></content:encoded>
			<wfw:commentRss>http://dvanhorn.lambda-calcul.us/2009/10/04/hofa-forum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Diss</title>
		<link>http://dvanhorn.lambda-calcul.us/2009/08/14/the-diss/</link>
		<comments>http://dvanhorn.lambda-calcul.us/2009/08/14/the-diss/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 18:21:09 +0000</pubDate>
		<dc:creator>dvanhorn</dc:creator>
				<category><![CDATA[Announce]]></category>
		<category><![CDATA[CFA]]></category>
		<category><![CDATA[Complexity]]></category>
		<category><![CDATA[Linearity]]></category>

		<guid isPermaLink="false">http://dvanhorn.lambda-calcul.us/?p=153</guid>
		<description><![CDATA[The Complexity of Flow Analysis in Higher-Order Languages: Abstract, Dissertation, Slides.
]]></description>
			<content:encoded><![CDATA[<p>The Complexity of Flow Analysis in Higher-Order Languages: <a href="http://www.ccs.neu.edu/home/dvanhorn/abstracts/vanhorn-dissertation.html">Abstract</a>, <a href="http://www.ccs.neu.edu/home/dvanhorn/pubs/vanhorn-dissertation.pdf">Dissertation</a>, <a href="http://www.ccs.neu.edu/home/dvanhorn/talks/vanhorn-phd-defense-2009.pdf">Slides</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dvanhorn.lambda-calcul.us/2009/08/14/the-diss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Complexity of Flow Analysis in Higher-Order Languages</title>
		<link>http://dvanhorn.lambda-calcul.us/2009/07/14/the-complexity-of-flow-analysis-in-higher-order-languages/</link>
		<comments>http://dvanhorn.lambda-calcul.us/2009/07/14/the-complexity-of-flow-analysis-in-higher-order-languages/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 22:16:08 +0000</pubDate>
		<dc:creator>dvanhorn</dc:creator>
				<category><![CDATA[Announce]]></category>
		<category><![CDATA[CFA]]></category>
		<category><![CDATA[Complexity]]></category>
		<category><![CDATA[Linearity]]></category>

		<guid isPermaLink="false">http://dvanhorn.lambda-calcul.us/?p=140</guid>
		<description><![CDATA[PhD Thesis Defense
Computer Science Department
Brandeis University
Date: Wednesday, July 22, 2009
Time: 2-4pm
Place: Volen 101
The Complexity of Flow Analysis in Higher-Order Languages
David Van Horn
Abstract:
This dissertation proves lower bounds on the inherent difficulty of deciding flow analysis problems in higher-order programming languages. We give exact characterizations of the computational complexity of 0CFA, the kCFA hierarchy, and related analyses. [...]]]></description>
			<content:encoded><![CDATA[<p>PhD Thesis Defense<br />
Computer Science Department<br />
Brandeis University</p>
<p>Date: Wednesday, July 22, 2009<br />
Time: 2-4pm<br />
Place: Volen 101</p>
<p>The Complexity of Flow Analysis in Higher-Order Languages<br />
David Van Horn</p>
<p>Abstract:</p>
<p>This dissertation proves lower bounds on the inherent difficulty of deciding flow analysis problems in higher-order programming languages. We give exact characterizations of the computational complexity of 0CFA, the kCFA hierarchy, and related analyses. In each case, we precisely capture both the expressiveness and feasibility of the analysis, identifying the elements responsible for the trade-off.</p>
<p>0CFA is complete for polynomial time. This result relies on the insight that when a program is linear (each bound variable occurs exactly once), the analysis makes no approximation; abstract and concrete interpretation coincide, and therefore program analysis becomes evaluation under another guise. Moreover, this is true not only for 0CFA, but for a number of further approximations to 0CFA. In each case, we derive polynomial time completeness results.</p>
<p>For any k > 0, kCFA is complete for exponential time. Even when k = 1, the distinction in binding contexts results in a limited form of closures, which do not occur in 0CFA. This theorem validates empirical observations that kCFA is intractably slow for any k > 0. There is, in the worst case&#8212;and plausibly, in practice&#8212;no way to tame the cost of the analysis. Exponential time is required. The empirically observed intractability of this analysis can be understood as being inherent in the approximation problem being solved, rather than reflecting unfortunate gaps in our programming abilities.</p>
]]></content:encoded>
			<wfw:commentRss>http://dvanhorn.lambda-calcul.us/2009/07/14/the-complexity-of-flow-analysis-in-higher-order-languages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subcubic Control Flow Analysis Algorithms</title>
		<link>http://dvanhorn.lambda-calcul.us/2009/05/21/subcubic-control-flow-analysis-algorithms/</link>
		<comments>http://dvanhorn.lambda-calcul.us/2009/05/21/subcubic-control-flow-analysis-algorithms/#comments</comments>
		<pubDate>Thu, 21 May 2009 21:30:43 +0000</pubDate>
		<dc:creator>dvanhorn</dc:creator>
				<category><![CDATA[CFA]]></category>

		<guid isPermaLink="false">http://dvanhorn.lambda-calcul.us/?p=95</guid>
		<description><![CDATA[Subcubic Control Flow Analysis Algorithms, Jan Midtgaard and David Van Horn.
We give the first direct subcubic algorithm for performing control flow analysis of higher-order functional programs. Despite the long held belief that inclusion-based flow analysis could not surpass the &#8220;cubic bottleneck, &#8221; we apply known set compression techniques to obtain an algorithm that runs in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ruc.dk/dat_en/research/reports/125/">Subcubic Control Flow Analysis Algorithms</a>, Jan Midtgaard and David Van Horn.</p>
<blockquote><p>We give the first direct subcubic algorithm for performing control flow analysis of higher-order functional programs. Despite the long held belief that inclusion-based flow analysis could not surpass the &#8220;cubic bottleneck, &#8221; we apply known set compression techniques to obtain an algorithm that runs in time O(n^3/log n) on a unit cost random-access memory model machine. Moreover, we refine the initial flow analysis into two more precise analyses incorporating notions of reachability. We give subcubic algorithms for these more precise analyses and relate them to an existing analysis from the literature.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://dvanhorn.lambda-calcul.us/2009/05/21/subcubic-control-flow-analysis-algorithms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ICFP 2009 Accepted papers</title>
		<link>http://dvanhorn.lambda-calcul.us/2009/05/18/icfp-2009-accepted-papers/</link>
		<comments>http://dvanhorn.lambda-calcul.us/2009/05/18/icfp-2009-accepted-papers/#comments</comments>
		<pubDate>Mon, 18 May 2009 19:10:25 +0000</pubDate>
		<dc:creator>dvanhorn</dc:creator>
				<category><![CDATA[CFA]]></category>
		<category><![CDATA[Scheme]]></category>

		<guid isPermaLink="false">http://dvanhorn.lambda-calcul.us/?p=81</guid>
		<description><![CDATA[Accepted papers for the 2009 ICFP have been announced and several look quite interesting.  Midtgaard and Jensen&#8217;s &#8220;Control-Flow Analysis of Function Calls and Returns by Abstract Interpretation&#8221; is available as a TR here.  PLT has an impressive showing, and Ralf Hinze&#8217;s &#8220;La Tour D&#8217;Hanoï&#8221; is sure to be fun.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://web.cecs.pdx.edu/~apt/icfp09_accepted_papers/accepted.html">Accepted papers</a> for the 2009 ICFP have been announced and several look quite interesting.  Midtgaard and Jensen&#8217;s &#8220;<a href="http://web.cecs.pdx.edu/~apt/icfp09_accepted_papers/45.html">Control-Flow Analysis of Function Calls and Returns by Abstract Interpretation</a>&#8221; is available as a TR <a href="http://hal.inria.fr/inria-00328154/en/">here</a>.  PLT has an impressive showing, and Ralf Hinze&#8217;s &#8220;<a href="http://web.cecs.pdx.edu/~apt/icfp09_accepted_papers/22.html">La Tour D&#8217;Hanoï</a>&#8221; is sure to be fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://dvanhorn.lambda-calcul.us/2009/05/18/icfp-2009-accepted-papers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To appear: Flow analysis, linearity, and PTIME</title>
		<link>http://dvanhorn.lambda-calcul.us/2008/04/07/to-appear-flow-analysis-linearity-and-ptime/</link>
		<comments>http://dvanhorn.lambda-calcul.us/2008/04/07/to-appear-flow-analysis-linearity-and-ptime/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 23:07:18 +0000</pubDate>
		<dc:creator>dvanhorn</dc:creator>
				<category><![CDATA[CFA]]></category>
		<category><![CDATA[Linearity]]></category>

		<guid isPermaLink="false">http://dvanhorn.lambda-calcul.us/2008/04/07/to-appear-flow-analysis-linearity-and-ptime/</guid>
		<description><![CDATA[Flow analysis, linearity, and PTIME was accepted at this year&#8217;s Static Analysis Symposium (SAS).  An early preprint was announced here, but the presentation has benefitted significantly from the anonymous reviewers&#8217; comments.  Also, the abstract was rewritten to be somewhat comprehensible (thanks to Dave Herman for encouraging the rewrite).
 Flow analysis is a ubiquitous [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cs.brandeis.edu/~dvanhorn/pubs/vanhorn-mairson-sas08.pdf">Flow analysis, linearity, and PTIME</a> was accepted at this year&#8217;s <a href="http://www.dsic.upv.es/~sas2008/">Static Analysis Symposium (SAS)</a>.  An early preprint was announced here, but the presentation has benefitted significantly from the anonymous reviewers&#8217; comments.  Also, the abstract was rewritten to be somewhat comprehensible (thanks to <a href="http://www.ccs.neu.edu/home/dherman/">Dave Herman</a> for encouraging the rewrite).</p>
<blockquote><p> Flow analysis is a ubiquitous and much-studied component of compiler technology—and its variations abound. Amongst the most well known is Shivers&#8217; 0CFA; however, the best known algorithm for 0CFA requires time cubic in the size of the analyzed program and is unlikely to be improved.  Consequently, several analyses have been designed to approximate 0CFA by trading precision for faster computation.  Henglein&#8217;s simple closure analysis, for example, forfeits the notion of directionality in flows and enjoys an &#8220;almost linear&#8221; time algorithm. But in making trade-offs between precision and complexity, what has been given up and what has been gained?  Where do these analyses differ and where do they coincide?</p>
<p>We identify a core language—the linear λ-calculus—where 0CFA, simple closure analysis, and many other known approximations or restrictions to 0CFA are rendered identical. Moreover, for this core language, analysis corresponds with (instrumented) evaluation. Because analysis faithfully captures evaluation, and because the linear λ-calculus is complete for PTIME, we derive PTIME-completeness results for all of these analyses.</p></blockquote>
<p>See you in Valencia!</p>
]]></content:encoded>
			<wfw:commentRss>http://dvanhorn.lambda-calcul.us/2008/04/07/to-appear-flow-analysis-linearity-and-ptime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preprint: Deciding kCFA is complete for EXPTIME</title>
		<link>http://dvanhorn.lambda-calcul.us/2008/04/02/preprint-deciding-kcfa-is-complete-for-exptime/</link>
		<comments>http://dvanhorn.lambda-calcul.us/2008/04/02/preprint-deciding-kcfa-is-complete-for-exptime/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 20:40:29 +0000</pubDate>
		<dc:creator>dvanhorn</dc:creator>
				<category><![CDATA[CFA]]></category>

		<guid isPermaLink="false">http://dvanhorn.lambda-calcul.us/2008/04/02/preprint-deciding-kcfa-is-complete-for-exptime/</guid>
		<description><![CDATA[A new preprint is available (submitted to ICFP), Deciding kCFA is complete for EXPTIME:
We give an exact characterization of the computational complexity of the kCFA hierarchy.  For any k &#62; 0, we prove that the control flow decision problem is complete for deterministic exponential time.  This theorem validates empirical observations that such control [...]]]></description>
			<content:encoded><![CDATA[<p>A new preprint is available (submitted to ICFP), <a href="http://www.cs.brandeis.edu/~dvanhorn/pubs/vanhorn-mairson-preprint08.pdf">Deciding kCFA is complete for EXPTIME</a>:</p>
<blockquote><p>We give an exact characterization of the computational complexity of the <em>k</em>CFA hierarchy.  For any <em>k &gt; 0</em>, we prove that the control flow decision problem is complete for deterministic exponential time.  This theorem validates empirical observations that such control flow analysis is intractable.  It also provides more general insight into the complexity of abstract interpretation.</p></blockquote>
<p>Comments welcome and appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://dvanhorn.lambda-calcul.us/2008/04/02/preprint-deciding-kcfa-is-complete-for-exptime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
