Reasoning About Multi-stage Programs

dc.contributor.advisorCartwright, Robert S.
dc.contributor.committeeMemberTaha, Walid
dc.contributor.committeeMemberSarkar, Vivek
dc.contributor.committeeMemberO'Malley, Marcia K.
dc.creatorInoue, Jun
dc.date.accessioned2013-07-24T19:33:01Z
dc.date.accessioned2013-07-24T19:33:03Z
dc.date.available2013-07-24T19:33:01Z
dc.date.available2013-07-24T19:33:03Z
dc.date.created2012-12
dc.date.issued2013-07-24
dc.date.submittedDecember 2012
dc.date.updated2013-07-24T19:33:04Z
dc.description.abstractMulti-stage programming (MSP) is a style of writing program generators---programs which generate programs---supported by special annotations that direct construction, combination, and execution of object programs. Various researchers have shown MSP to be effective in writing efficient programs without sacrificing genericity. However, correctness proofs of such programs have so far received limited attention, and approaches and challenges for that task have been largely unexplored. In this thesis, I establish formal equational properties of the multi-stage lambda calculus and related proof techniques, as well as results that delineate the intricacies of multi-stage languages that one must be aware of. In particular, I settle three basic questions that naturally arise when verifying multi-stage functional programs. Firstly, can adding staging MSP to a language compromise the interchangeability of terms that held in the original language? Unfortunately it can, and more care is needed to reason about terms with free variables. Secondly, staging annotations, as the term ``annotations'' suggests, are often thought to be orthogonal to the behavior of a program, but when is this formally guaranteed to be the case? I give termination conditions that characterize when this guarantee holds. Finally, do multi-stage languages satisfy extensional facts, for example that functions agreeing on all arguments are equivalent? I develop a sound and complete notion of applicative bisimulation, which can establish not only extensionality but, in principle, any other valid program equivalence as well. These results improve our general understanding of staging and enable us to prove the correctness of complicated multi-stage programs.
dc.format.mimetypeapplication/pdf
dc.identifier.citationInoue, Jun. "Reasoning About Multi-stage Programs." (2013) Diss., Rice University. <a href="https://hdl.handle.net/1911/71663">https://hdl.handle.net/1911/71663</a>.
dc.identifier.slug123456789/ETD-2012-12-93
dc.identifier.urihttps://hdl.handle.net/1911/71663
dc.language.isoeng
dc.rightsCopyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.
dc.subjectMulti-stage languages
dc.subjectVerification
dc.subjectEquational theory
dc.subjectBisimulation
dc.subjectAnnotation erasure
dc.titleReasoning About Multi-stage Programs
dc.typeThesis
dc.type.materialText
thesis.degree.departmentComputer Science
thesis.degree.disciplineEngineering
thesis.degree.grantorRice University
thesis.degree.levelDoctoral
thesis.degree.nameDoctor of Philosophy
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
INOUE-THESIS.pdf
Size:
988.61 KB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
1.61 KB
Format:
Item-specific license agreed upon to submission
Description: