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 条
  • [21] Another Approach for the Teaching of the Foundations of Programming using UML and Java']Java
    Rivera-Lopez, Rafael
    Rivera-Lopez, Estela
    Rodriguez-Leon, Abelardo
    CEA'09: PROCEEDINGS OF THE 3RD WSEAS INTERNATIONAL CONFERENCE ON COMPUTER ENGINEERING AND APPLICATIONS, 2009, : 279 - +
  • [22] Using JAVA']JAVA and the socket interface in teaching client/server programming
    Yang, A
    Bachar, Y
    ITICSE '99: PROCEEDINGS OF THE 4TH ANNUAL SIGCSE/SIGCUE CONFERENCE ON INNOVATION AND TECHNOLOGY IN COMPUTER SCIENCE EDUCATION, 1999, 31 (03): : 206 - 206
  • [23] A modular approach to real time programming using actors and Java']Java
    Nigro, L
    Pupo, F
    REAL TIME PROGRAMMING 1997: (WRTP 97), 1998, : 65 - 70
  • [24] Adaptable Java']Java agents (AJA) - a tool for programming of multi-agent systems
    Badjonski, M
    Ivanovic, M
    Budimac, Z
    ACM SIGPLAN NOTICES, 2005, 40 (02) : 17 - 26
  • [25] Distributed genetic programming by an object oriented system using Java']Java and CORBA
    Rabuñal, JR
    Dorado, J
    Varela, M
    Rivero, D
    Gestal, M
    Proceedings of the IASTED International Conference on Parallel and Distributed Computing and Networks, 2004, : 434 - 439
  • [26] On Teaching Java']Java and Object Oriented Programming by Using Children Board Games
    Gabaruk, Julia
    Logofatu, Doina
    Grosskreutz, Damian
    Andersson, Christina
    PROCEEDINGS OF 2019 IEEE GLOBAL ENGINEERING EDUCATION CONFERENCE (EDUCON), 2019, : 601 - 606
  • [27] A gentle introduction to multi-stage programming
    Taha, W
    DOMAIN-SPECIFIC PROGRAM GENERATION, 2003, 3016 : 30 - 50
  • [28] Implicitly Heterogeneous Multi-Stage Programming
    Jason Eckhardt
    Roumen Kaiabachev
    Emir Pasalic
    Kedar Swadi
    Walid Taha
    New Generation Computing, 2007, 25 : 305 - 336
  • [29] Implicitly heterogeneous multi-stage programming
    Eckhardt, J
    Kaiabachev, R
    Pasalic, E
    Swadi, K
    Taha, W
    GENERATIVE PROGRAMMING AND COMPONENT ENGINEERING, PROCEEDINGS, 2005, 3676 : 275 - 292
  • [30] Refining semantics for multi-stage programming
    Ge, Rui
    Garcia, Ronald
    JOURNAL OF COMPUTER LANGUAGES, 2019, 51 : 222 - 240