Title:
Environment Analysis of Higher-Order Languages

dc.contributor.advisor Shivers, Olin
dc.contributor.author Might, Matthew Brendon en_US
dc.contributor.committeeMember Wand, Mitchell
dc.contributor.committeeMember Panagiotis Manolios
dc.contributor.committeeMember Pande, Santosh
dc.contributor.committeeMember Smaragdakis, Yannis
dc.contributor.department Computing en_US
dc.date.accessioned 2007-08-16T17:58:14Z
dc.date.available 2007-08-16T17:58:14Z
dc.date.issued 2007-06-29 en_US
dc.description.abstract Any analysis of higher-order languages must grapple with the tri-facetted nature of lambda. In one construct, the fundamental control, environment and data structures of a language meet and intertwine. With the control facet tamed nearly two decades ago, this work brings the environment facet to heel, defining the environment problem and developing its solution: environment analysis. Environment analysis allows a compiler to reason about the equivalence of environments, i.e., name-to-value mappings, that arise during a program's execution. In this dissertation, two different techniques-abstract counting and abstract frame strings-make this possible. A third technique, abstract garbage collection, makes both of these techniques more precise and, counter to intuition, often faster as well. An array of optimizations and even deeper analyses which depend upon environment analysis provide motivation for this work. In an abstract interpretation, a single abstract entity represents a set of concrete entities. When the entities under scrutiny are bindings-single name-to-value mappings, the atoms of environment-then determining when the equality of two abstract bindings infers the equality of their concrete counterparts is the crux of environment analysis. Abstract counting does this by tracking the size of represented sets, looking for singletons, in order to apply the following principle: If {x} = {y}, then x = y. Abstract frame strings enable environmental reasoning by statically tracking the possible stack change between the births of two environments; when this change is effectively empty, the environments are equivalent. Abstract garbage collection improves precision by intermittently removing unreachable environment structure during abstract interpretation. en_US
dc.description.degree Ph.D. en_US
dc.identifier.uri http://hdl.handle.net/1853/16289
dc.publisher Georgia Institute of Technology en_US
dc.subject Static analysis en_US
dc.subject Lambda calculus en_US
dc.subject Programming languages en_US
dc.subject Compilers en_US
dc.subject.lcsh Data structures (Computer science) en_US
dc.subject.lcsh Computer programs Verification en_US
dc.subject.lcsh Abstract data types (Computer science) en_US
dc.title Environment Analysis of Higher-Order Languages en_US
dc.type Text
dc.type.genre Dissertation
dspace.entity.type Publication
local.contributor.corporatename College of Computing
relation.isOrgUnitOfPublication c8892b3c-8db6-4b7b-a33a-1b67f7db2021
Files
Original bundle
Now showing 1 - 1 of 1
Thumbnail Image
Name:
might_matthew_b_200708_phd.pdf
Size:
867.46 KB
Format:
Adobe Portable Document Format
Description: