Shifting the stage: Staging with delimited control

Yukiyoshi Kameyama, Oleg Kiselyov, Chung Chieh Shan

研究成果: Conference contribution

34 被引用数 (Scopus)

抄録

It is often hard to write programs that are efficient yet reusable. For example, an efficient implementation of Gaussian elimination should be specialized to the structure and known static properties of the input matrix. The most profitable optimizations, such as choosing the best pivoting or memoization, cannot be expected of even an advanced compiler because they are specific to the domain, but expressing these optimizations directly makes for ungainly source code. Instead, a promising and popular way to reconcile efficiency with reusability is for a domain expert to write code generators. Two pillars of this approach are types and effects. Typed multilevel languages such as MetaOCaml ensure safety: a well-typed code generator neither goes wrong nor generates code that goes wrong. Side effects such as state and control ease correctness: an effectful generator can resemble the textbook presentation of an algorithm, as is familiar to domain experts, yet insert let for memoization and if for bounds-checking, as is necessary for efficiency. However, adding effects blindly renders multilevel types unsound. We introduce the first two-level calculus with control effects and a sound type system. We give small-step operational semantics as well as a continuation-passing style (CPS) translation. For soundness, our calculus restricts the code generator's effects to the scope of generated binders. Even with this restriction, we can finally write efficient code generators for dynamic programming and numerical methods in direct style, like in algorithm textbooks, rather than in CPS or monadic style.

本文言語English
ホスト出版物のタイトルProceedings of the 2009 ACM SIGPLAN Symposium on Partial Evaluation and Program Manipulation, PEPM'09
ページ111-120
ページ数10
DOI
出版ステータスPublished - 2009
外部発表はい
イベント2009 ACM SIGPLAN Symposium on Partial Evaluation and Program Manipulation, PEPM'09 - Savannah, GA, United States
継続期間: 2009 1 192009 1 20

出版物シリーズ

名前Proceedings of the 2009 ACM SIGPLAN Symposium on Partial Evaluation and Program Manipulation, PEPM'09

Other

Other2009 ACM SIGPLAN Symposium on Partial Evaluation and Program Manipulation, PEPM'09
国/地域United States
CitySavannah, GA
Period09/1/1909/1/20

ASJC Scopus subject areas

  • コンピュータ サイエンスの応用
  • ソフトウェア

フィンガープリント

「Shifting the stage: Staging with delimited control」の研究トピックを掘り下げます。これらがまとまってユニークなフィンガープリントを構成します。

引用スタイル