Flow Java']Java: Declarative concurrency for Java']Java

被引:3
|
作者
Drejhammar, F
Schulte, C
Brand, P
Haridi, S
机构
[1] Royal Inst Technol, KTH, Inst Microelect & Informat Technol, SE-16440 Kista, Sweden
[2] SICS, SE-16429 Kista, Sweden
来源
关键词
D O I
10.1007/978-3-540-24599-5_24
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Logic variables pioneered by (concurrent) logic and concurrent constraint programming are powerful mechanisms for automatically synchronizing concurrent computations. They support a declarative model of concurrency that avoids explicitly suspending and resuming computations. This paper presents Flow Java which conservatively extends Java with single assignment variables and futures as variants of logic variables. The extension is conservative with respect to object-orientation, types, parameter passing, and concurrency in Java. Futures support secure concurrent abstractions and are essential for seamless integration of single assignment variables into Java. We show how Flow Java supports the construction of simple and concise concurrent programming abstractions. We present how to moderately extend compilation and the runtime architecture of an existing Java implementation for Flow Java. Evaluation using standard Java benchmarks shows that in most cases the overhead is between 10% and 40%. For some pathological cases the runtime increases by up to 75%.
引用
收藏
页码:346 / 360
页数:15
相关论文
共 50 条
  • [1] Declarative concurrency in Java']Java
    Ramirez, R
    Santosa, AE
    [J]. PARALLEL AND DISTRIBUTED PROCESSING, PROCEEDINGS, 2000, 1800 : 332 - 339
  • [2] JAC:: declarative Java']Java concurrency
    Haustein, M
    Löhr, KP
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2006, 18 (05): : 519 - 546
  • [3] Implementing declarative concurrency in Java']Java
    Ramirez, R
    Santosa, AE
    Hong, LW
    [J]. EURO-PAR 2000 PARALLEL PROCESSING, PROCEEDINGS, 2000, 1900 : 700 - 708
  • [4] Concurrency analysis for Java']Java
    Ungureanu, C
    Jagannathan, S
    [J]. STATIC ANALYSIS, 2000, 1824 : 413 - 432
  • [5] JAVA']JAVACOP: Declarative Pluggable Types for Java']Java
    Markstrum, Shane
    Marino, Daniel
    Esquivel, Matthew
    Millstein, Todd
    Andreae, Chris
    Noble, James
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2010, 32 (02):
  • [6] JS']JSetL: a Java']Java library for supporting declarative programming in Java']Java
    Rossi, G.
    Panegai, E.
    Poleo, E.
    [J]. SOFTWARE-PRACTICE & EXPERIENCE, 2007, 37 (02): : 115 - 149
  • [7] Advanced concurrency control in Java']Java
    Felber, P
    Reiter, MK
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2002, 14 (04): : 261 - 285
  • [8] Concurrency Analysis of Go and Java']Java
    Abhinav, P. Y.
    Bhat, Avakash
    Joseph, Christina Terese
    Chandrasekaran, K.
    [J]. PROCEEDINGS OF THE 2020 5TH INTERNATIONAL CONFERENCE ON COMPUTING, COMMUNICATION AND SECURITY (ICCCS-2020), 2020,
  • [9] Revocation techniques for Java']Java concurrency
    Welc, Adam
    Jagannathan, Suresh
    Hosking, Antony L.
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2006, 18 (12): : 1613 - 1656
  • [10] Concurrency and synchronization in Java']Java programs
    Moir, M
    Shavit, N
    Vitek, J
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2005, 58 (03) : 291 - 292