TL;DR: This work describes various summarization techniques based on k-limiting, allocation sites, patterns, variables, other generic instrumentation predicates, and higher-order logics and classify the heap models as storeless, store based, and hybrid.
Abstract: Heap data is potentially unbounded and seemingly arbitrary. Hence, unlike stack and static data, heap data cannot be abstracted in terms of a fixed set of program variables. This makes it an interesting topic of study and there is an abundance of literature employing heap abstractions. Although most studies have addressed similar concerns, insights gained in one description of heap abstraction may not directly carry over to some other description. In our search of a unified theme, we view heap abstraction as consisting of two steps: (a) heap modelling, which is the process of representing a heap memory (i.e., an unbounded set of concrete locations) as a heap model (i.e., an unbounded set of abstract locations), and (b) summarization, which is the process of bounding the heap model by merging multiple abstract locations into summary locations. We classify the heap models as storeless, store based, and hybrid. We describe various summarization techniques based on k-limiting, allocation sites, patterns, variables, other generic instrumentation predicates, and higher-order logics. This approach allows us to compare the insights of a large number of seemingly dissimilar heap abstractions and also paves the way for creating new abstractions by mix and match of models and summarization techniques.
TL;DR: C‐strider is presented, a framework for writing C heap traversals and transformations that tracks types as it walks the heap, so every callback is supplied with the exact type of the associated location.
TL;DR: Experimental results prove the advantage of Binomial Minimum Heap based AEKFI over other keyword extraction tools.
Abstract: Automatic Extraction of Keywords using Frequent Itemsets (AEKFI) is a new technique for keyword extraction which integrates adjacency of location of words within the document to automatically select the most discriminative words without using a corpus. This paper introduces a novel Binomial Heap Approach based AEKFI for document summarization. Binomial heap does keyword extraction using binomial minimum heap operations. AEKFI provides flexibility to select either the set of keywords from a given document or user specified number of keywords. AEKFI does not impose any restriction on the length of keywords being extracted. Demonstration of Binomial Heap Extractor has been made and has been found efficient in reducing the time complexity O (n2) of existing approaches to O (n log n). Experimental results prove the advantage of Binomial Minimum Heap based AEKFI over other keyword extraction tools.
TL;DR: JBSE is the first symbolic executor specifically designed to deal with programs that operate on complex heap inputs, to experiment with the main state-of-the-art approaches, and to combine different decision procedures to explore possible synergies among approaches for handling symbolic data structures.
Abstract: We present the Java Bytecode Symbolic Executor (JBSE), a symbolic executor for Java programs that operates on complex heap inputs. JBSE implements both the novel Heap EXploration Logic (HEX), a symbolic execution approach to deal with heap inputs, and the main state-of-the-art approaches that handle data structure constraints expressed as either executable programs (repOk methods) or declarative specifications. JBSE is the first symbolic executor specifically designed to deal with programs that operate on complex heap inputs, to experiment with the main state-of-the-art approaches, and to combine different decision procedures to explore possible synergies among approaches for handling symbolic data structures.
TL;DR: It is shown how current dependently typed programming technology can lead to a clean treatment of the binomial heap constraints when implementing heap operations, and some gaps between the current technology and an ideal dependently typing programming language are identified.
Abstract: Dependently typed programming advocates the use of various indexed versions of the same shape of data, but the formal relationship among these structurally similar datatypes usually needs to be established manually and tediously. Ornaments have been proposed as a formal mechanism to manage the relationships between such datatype variants. In this paper, we conduct a case study under an ornament framework; the case study concerns programming binomial heaps and their operations — including insertion and minimum extraction — by viewing them as lifted versions of binary numbers and numeric operations. We show how current dependently typed programming technology can lead to a clean treatment of the binomial heap constraints when implementing heap operations, and also identify some gaps between the current technology and an ideal dependently typed programming language that we would wish to have for our development.