Practical Aspects of Multi-stage Programming

msra(2004)

引用 23|浏览9
暂无评分
摘要
High-level languages oer abstraction mechanisms that can reduce development time and improve software quality. But abstraction mechanisms often have an accumulative runtime overhead that can dis- courage their use. Multi-stage programming (MSP) languages oer con- structs that make it possible to use abstraction mechanisms without paying a runtime overhead. This paper studies applying MSP to imple- menting dynamic programming (DP) problems. The study reveals that staging high-level implementations of DP algorithms naturally leads to a code explosion problem. In addition, it is common that high-level lan- guages are not designed to deliver the kind of performance that is desir- able in implementations of such algorithms. The paper proposes a solu- tion to each of these two problems. Staged memoization is used for code explosion, and a kind of "oshoring" translation is used to address the second. For basic DP problems, the performance of the resulting special- ized C implementations is almost always better than the hand-written generic C implementations.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要