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 条
  • [41] Meta-programming and Multi-stage Programming for GPGPUs
    Masliah, Ian
    Baboulin, Marc
    Falcou, Joel
    2016 IEEE 10TH INTERNATIONAL SYMPOSIUM ON EMBEDDED MULTICORE/MANY-CORE SYSTEMS-ON-CHIP (MCSOC), 2016, : 369 - 376
  • [42] Research and Review on the Java']Java Multi-thread Programming and Its Further Development Tendency
    Geng, Jiangtao
    2016 2ND INTERNATIONAL CONFERENCE ON SOCIAL SCIENCE, MANAGEMENT AND ECONOMICS (SSME 2016), 2016, : 530 - 535
  • [43] On Cross-Stage Persistence in Multi-Stage Programming
    Hanada, Yuichiro
    Igarashi, Atsushi
    FUNCTIONAL AND LOGIC PROGRAMMING, FLOPS 2014, 2014, 8475 : 103 - 118
  • [44] ARJA: Automated Repair of Java']Java Programs via Multi-Objective Genetic Programming
    Yuan, Yuan
    Banzhaf, Wolfgang
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2020, 46 (10) : 1040 - 1067
  • [45] Multi-tiered Internet computing using Java']Java technologies
    Liu, JB
    IECON'01: 27TH ANNUAL CONFERENCE OF THE IEEE INDUSTRIAL ELECTRONICS SOCIETY, VOLS 1-3, 2001, : 1789 - 1793
  • [46] Teaching distributed programming concepts using a Java']Java and logo-based framework
    Chochai, T
    Davison, A
    IC'2001: PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON INTERNET COMPUTING, VOLS I AND II, 2001, : 311 - 316
  • [47] Rule Engines Integration Using Aspect Oriented Programming in Java']Java Applications Development
    Garcia Gonzalez, Juan Carlos
    Andre Ampuero, Margarita
    REVISTA CUBANA DE INGENIERIA, 2016, 7 (03): : 54 - 63
  • [48] Concurrent programming for database processing using Java']Java threads in a client/server environment
    O'Leary, B
    Zhang, C
    INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED PROCESSING TECHNIQUES AND APPLICATIONS, VOLS I-V, PROCEEDINGS, 1999, : 453 - 459
  • [49] Multi-Stage Programming for GPUs in C plus plus using PACXX
    Haidl, Michael
    Steuwert, Michel
    Humernbrum, Tim
    Gorlatch, Sergei
    9TH WORKSHOP ON GENERAL PURPOSE PROCESSING USING GPUS (GPGPU 9), 2016, : 33 - 42
  • [50] Application of Multi-mode Teaching Based on Project and Case Driven in Java']Java Programming Course
    Wang, Jianxia
    Ruan, Yanqin
    Zhang, Xiaoming
    Zhou, Wanzhen
    PROCEEDINGS OF THE 2013 THE INTERNATIONAL CONFERENCE ON EDUCATION TECHNOLOGY AND INFORMATION SYSTEM (ICETIS 2013), 2013, 65 : 287 - 290