License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2016.19
URN: urn:nbn:de:0030-drops-61132
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2016/6113/
Go to the corresponding LIPIcs Volume Portal


Palmer, Zachary ; Smith, Scott F.

Higher-Order Demand-Driven Program Analysis

pdf-format:
LIPIcs-ECOOP-2016-19.pdf (0.6 MB)


Abstract

We explore a novel approach to higher-order program analysis that brings ideas of on-demand lookup from first-order CFL-reachability program analyses to higher-order programs. The analysis needs to produce only a control-flow graph; it can derive all other information including values of variables directly from the graph. Several challenges had to be overcome, including how to build the control-flow graph on-the-fly and how to deal with non-local variables in functions. The resulting analysis is flow- and context-sensitive with a provable polynomial-time bound. The analysis is formalized and proved correct and terminating, and an initial implementation is described.

BibTeX - Entry

@InProceedings{palmer_et_al:LIPIcs:2016:6113,
  author =	{Zachary Palmer and Scott F. Smith},
  title =	{{Higher-Order Demand-Driven Program Analysis}},
  booktitle =	{30th European Conference on Object-Oriented Programming (ECOOP 2016)},
  pages =	{19:1--19:25},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-014-9},
  ISSN =	{1868-8969},
  year =	{2016},
  volume =	{56},
  editor =	{Shriram Krishnamurthi and Benjamin S. Lerner},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2016/6113},
  URN =		{urn:nbn:de:0030-drops-61132},
  doi =		{10.4230/LIPIcs.ECOOP.2016.19},
  annote =	{Keywords: functional programming, program analysis, polynomial-time, demand-driven, flow-sensitive, context-sensitive}
}

Keywords: functional programming, program analysis, polynomial-time, demand-driven, flow-sensitive, context-sensitive
Collection: 30th European Conference on Object-Oriented Programming (ECOOP 2016)
Issue Date: 2016
Date of publication: 18.07.2016


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI