Reasoning about multi-stage programs*. (7th November 2016)
- Record Type:
- Journal Article
- Title:
- Reasoning about multi-stage programs*. (7th November 2016)
- Main Title:
- Reasoning about multi-stage programs*
- Authors:
- INOUE, JUN
TAHA, WALID - Abstract:
- Abstract: We settle three basic questions that naturally arise when verifying code generators written in multi-stage functional programming languages. First, does adding staging to a language compromise any equalities that hold in the base language? Unfortunately it does, and more care is needed to reason about terms with free variables. Second, staging annotations, as the name "annotations" suggests, are often thought to be orthogonal to the behavior of a program, but when is this formally guaranteed to be true? We give termination conditions that characterize when this guarantee holds. Finally, do multi-stage languages satisfy useful, standard extensional properties, for example, that functions agreeing on all arguments are equivalent? We provide a sound and complete notion of applicative bisimulation, which establishes such properties or, in principle, any valid program equivalence. These results yield important insights into staging and allow us to prove the correctness of quite complicated multi-stage programs.
- Is Part Of:
- Journal of functional programming. Volume 26(2016)
- Journal:
- Journal of functional programming
- Issue:
- Volume 26(2016)
- Issue Display:
- Volume 26, Issue 2016 (2016)
- Year:
- 2016
- Volume:
- 26
- Issue:
- 2016
- Issue Sort Value:
- 2016-0026-2016-0000
- Page Start:
- Page End:
- Publication Date:
- 2016-11-07
- Subjects:
- Functional programming (Computer science) -- Periodicals
- Journal URLs:
- http://journals.cambridge.org/action/displayJournal?jid=JFP ↗
http://firstsearch.oclc.org ↗ - DOI:
- 10.1017/S0956796816000253 ↗
- Languages:
- English
- ISSNs:
- 0956-7968
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library STI - ELD Digital store
- Ingest File:
- 606.xml