Thorn-Robust, Concurrent, Extensible Scripting on the JVM

被引:13
作者
Bloom, Bard [1 ]
Field, John [1 ]
Nystrom, Nathaniel [1 ,2 ]
Oestlund, Johan [3 ]
Richards, Gregor [3 ]
Strnisa, Rok [4 ]
Vitek, Jan [3 ]
Wrigstad, Tobias [3 ,5 ]
机构
[1] IBM Corp, Yorktown Hts, NY 10598 USA
[2] Univ Texas Arlington, Arlington, TX USA
[3] Purdue Univ, W Lafayette, IN 47907 USA
[4] Univ Cambridge, Cambridge CB2 1TN, England
[5] Stockholm Univ, Stockholm, Sweden
关键词
Design; Actors; Pattern matching; Scripting;
D O I
10.1145/1639949.1640098
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Scripting languages enjoy great popularity due to their support for rapid and exploratory development. They typically have lightweight syntax, weak data privacy, dynamic typing, powerful aggregate data types, and allow execution of the completed parts of incomplete programs. The price of these features comes later in the software life cycle. Scripts are hard to evolve and compose, and often slow. An additional weakness of most scripting languages is lack of support for concurrency-though concurrency is required for scalability and interacting with remote services. This paper reports on the design and implementation of Thorn, a novel programming language targeting the JVM. Our principal contributions are a careful selection of features that support the evolution of scripts into industrial grade programs-e.g., an expressive module system, an optional type annotation facility for declarations, and support for concurrency based on message passing between lightweight, isolated processes. On the implementation side, Thorn has been designed to accommodate the evolution of the language itself through a compiler plugin mechanism and target the Java virtual machine.
引用
收藏
页码:117 / 136
页数:20
相关论文
共 59 条
  • [1] Allen Eric., 2008, FORTRESS LANGUAGE SP
  • [2] ANDERSON C, 2003, ELECT NOTES THEOR CO, V82
  • [3] ANDREAE C., 2006, OOPSLA 06
  • [4] ANDREWS T, 1987, P ACM C OBJ OR PROGR, V22, P430
  • [5] [Anonymous], 1986, Abstraction and Specification in Program Development
  • [6] [Anonymous], PRINCIPLES AGILE MAN
  • [7] [Anonymous], The Computer Language Benchmarks Game
  • [8] [Anonymous], INTRO JSON
  • [9] [Anonymous], 2005, OOPSLA
  • [10] Bacon D.F., 2001, JGI 01, P68