hh.sePublications
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Tagless Staged Interpreters for Typed Languages
OGI School of Science & Engineering, Oregon Health & Science University, Hillsboro, Oregon, USA.
Computer Science Department, Rice University, Houston, TX, USA.ORCID iD: 0000-0003-3160-9188
OGI School of Science & Engineering, Oregon Health & Science University, Portland, Oregon, USA.
2002 (English)In: ICFP '02: Proceedings of the Seventh ACM SIGPLAN International Conference on Functional Programming, New York, NY: ACM Press, 2002, Vol. 37, p. 218-229Conference paper, Published paper (Refereed)
Abstract [en]

Multi-stage programming languages provide a convenient notation for explicitly staging programs. Staging a definitional interpreter for a domain specific language is one way of deriving an implementation that is both readable and efficient. In an untyped setting, staging an interpreter "removes a complete layer of interpretive overhead", just like partial evaluation. In a typed setting however, Hindley-Milner type systems do not allow us to exploit typing information in the language being interpreted. In practice, this can mean a slowdown cost by a factor of three or more. Previously, both type specialization and tag elimination were applied to this problem. In this paper we propose an alternative approach, namely, expressing the definitional interpreter in a dependently typed programming language. We report on our experience with the issues that arise in writing such an interpreter and in designing such a language. To demonstrate the soundness of combining staging and dependent types in a general sense, we formalize our language (called Meta-D) and prove its type safety. To formalize Meta-D, we extend Shao, Saha, Trifonov and Papaspyrou's λH language to a multilevel setting. Building on λH allows us to demonstrate type safety in a setting where the type language contains all the calculus of inductive constructions, but without having to repeat the work needed for establishing the soundness of that system.

Place, publisher, year, edition, pages
New York, NY: ACM Press, 2002. Vol. 37, p. 218-229
Series
SIGPLAN notices, ISSN 0362-1340 ; 9
Keywords [en]
Multi-stage programming, definitional interpreters, calculus of constructions, domain-specific languages
National Category
Computer Systems
Identifiers
URN: urn:nbn:se:hh:diva-20981DOI: 10.1145/583852.581499ISI: 000179019100022Scopus ID: 2-s2.0-0036949280Libris ID: 12438579ISBN: 1-58113-487-8 OAI: oai:DiVA.org:hh-20981DiVA, id: diva2:588280
Conference
ICFP'02 – 7th International Conference on Functional Programming, Pittsburgh, PA, United States, 4-6 October, 2002
Note

E. P. supported by NSF CCR-0098126. W. T. supported by NSF ITR-0113569. (This work was done while the authors was at Yale University.) T. S. supported by NSF CCR-0098126.

Available from: 2013-01-15 Created: 2013-01-14 Last updated: 2021-05-11Bibliographically approved

Open Access in DiVA

No full text in DiVA

Other links

Publisher's full textScopus

Authority records

Taha, Walid

Search in DiVA

By author/editor
Taha, Walid
Computer Systems

Search outside of DiVA

GoogleGoogle Scholar

doi
isbn
urn-nbn

Altmetric score

doi
isbn
urn-nbn
Total: 218 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf