Reasoning About Multi-stage Programs

dc.contributor.advisorCartwright, Robert S.en_US
dc.contributor.committeeMemberTaha, Waliden_US
dc.contributor.committeeMemberSarkar, Viveken_US
dc.contributor.committeeMemberO'Malley, Marcia K.en_US
dc.creatorInoue, Junen_US
dc.date.accessioned2013-07-24T19:33:01Zen_US
dc.date.accessioned2013-07-24T19:33:03Zen_US
dc.date.available2013-07-24T19:33:01Zen_US
dc.date.available2013-07-24T19:33:03Zen_US
dc.date.created2012-12en_US
dc.date.issued2013-07-24en_US
dc.date.submittedDecember 2012en_US
dc.date.updated2013-07-24T19:33:04Zen_US
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.en_US
dc.format.mimetypeapplication/pdfen_US
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>.en_US
dc.identifier.slug123456789/ETD-2012-12-93en_US
dc.identifier.urihttps://hdl.handle.net/1911/71663en_US
dc.language.isoengen_US
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.en_US
dc.subjectMulti-stage languagesen_US
dc.subjectVerificationen_US
dc.subjectEquational theoryen_US
dc.subjectBisimulationen_US
dc.subjectAnnotation erasureen_US
dc.titleReasoning About Multi-stage Programsen_US
dc.typeThesisen_US
dc.type.materialTexten_US
thesis.degree.departmentComputer Scienceen_US
thesis.degree.disciplineEngineeringen_US
thesis.degree.grantorRice Universityen_US
thesis.degree.levelDoctoralen_US
thesis.degree.nameDoctor of Philosophyen_US
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: