Mint: Java']Java Multi-stage Programming Using Weak Separability

被引:10
|
作者
Westbrook, Edwin [1 ]
Ricken, Mathias [1 ]
Inoue, Jun [1 ]
Yao, Yilong [1 ]
Abdelatif, Tamer [1 ]
Taha, Walid [1 ]
机构
[1] Rice Univ, Houston, TX 77251 USA
关键词
Languages; Multi-staged languages; Multi-stage programming; Type systems; !text type='Java']Java[!/text;
D O I
10.1145/1809028.1806642
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Multi-stage programming (MSP) provides a disciplined approach to run-time code generation. In the purely functional setting, it has been shown how MSP can be used to reduce the overhead of abstractions, allowing clean, maintainable code without paying performance penalties. Unfortunately, MSP is difficult to combine with imperative features, which are prevalent in mainstream languages. The central difficulty is scope extrusion, wherein free variables can inadvertently be moved outside the scopes of their binders. This paper proposes a new approach to combining MSP with imperative features that occupies a "sweet spot" in the design space in terms of how well useful MSP applications can be expressed and how easy it is for programmers to understand. The key insight is that escapes (or "anti-quotes") must be weakly separable from the rest of the code, i.e. the computational effects occurring inside an escape that are visible outside the escape are guaranteed to not contain code. To demonstrate the feasibility of this approach, we formalize a type system based on Lightweight Java which we prove sound, and we also provide an implementation, called Mint, to validate both the expressivity of the type system and the effect of staging on the performance of Java programs.
引用
收藏
页码:400 / 411
页数:12
相关论文
共 50 条
  • [1] Mint: Java']Java Multi-stage Programming Using Weak Separability
    Westbrook, Edwin
    Ricken, Mathias
    Inoue, Jun
    Yao, Yilong
    Abdelatif, Tamer
    Taha, Walid
    PLDI '10: PROCEEDINGS OF THE 2010 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2010, : 400 - 411
  • [2] Markov chain model of multi-stage production system with solution procedure in Java']Java
    Lukas, Ladislav
    PROCEEDINGS OF THE 25TH INTERNATIONAL CONFERENCE ON MATHEMATICAL METHODS IN ECONOMICS 2007, 2007, : 195 - 203
  • [3] Database programming using JAVA']JAVA
    Swain, M
    Anderson, JA
    Korrapati, R
    Swain, NK
    IEEE SOUTHEASTCON 2002: PROCEEDINGS, 2002, : 220 - 225
  • [4] Control Programming Using Java']Java
    Lueder, Arndt
    Peschke, Joern
    Heinze, Michael
    IEEE INDUSTRIAL ELECTRONICS MAGAZINE, 2008, 2 (02) : 19 - 27
  • [5] Multi-stage mixing in subduction zones: Application to Merapi volcano (Java']Java island, Sunda arc)
    Debaille, V
    Doucelance, R
    Weis, D
    Schiano, P
    GEOCHIMICA ET COSMOCHIMICA ACTA, 2006, 70 (03) : 723 - 741
  • [6] Using Java']Java for scientific programming and electromagnetics
    Martin, J
    Long, LN
    Morooney, KM
    COMPUTERS IN PHYSICS, 1998, 12 (06): : 601 - 607
  • [7] An extended programming assignment (using Java']Java)
    Trono, JA
    PDPTA'2001: PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED PROCESSING TECHNIQUES AND APPLICATIONS, 2001, : 1803 - 1809
  • [8] Teaching Parallel Programming Using Java']Java
    Shafi, Aamir
    Akhtar, Aleem
    Javed, Ansar
    Carpenter, Bryan
    2014 WORKSHOP ON EDUCATION FOR HIGH PERFORMANCE COMPUTING (EDUHPC), 2014, : 56 - 63
  • [9] Using LSTMs to Model the Java']Java Programming Language
    Boldt, Brendon
    ARTIFICIAL NEURAL NETWORKS AND MACHINE LEARNING, PT II, 2017, 10614 : 268 - 275
  • [10] Multi-stage programming
    Taha, W
    Sheard, T
    ACM SIGPLAN NOTICES, 1997, 32 (08) : 321 - 321