AEMINIUM: A Permission-Based Concurrent-by-Default Programming Language Approach

被引:17
|
作者
Stork, Sven [1 ]
Naden, Karl [1 ]
Sunshine, Joshua [1 ]
Mohr, Manuel [2 ]
Fonseca, Alcides [3 ]
Marques, Paulo [3 ]
Aldrich, Jonathan [1 ]
机构
[1] Carnegie Mellon Univ, Dept Comp Sci, Pittsburgh, PA 15213 USA
[2] Karlsruhe Inst Technol, D-76021 Karlsruhe, Germany
[3] Univ Coimbra, Coimbra, Portugal
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2014年 / 36卷 / 01期
基金
美国国家科学基金会;
关键词
Languages; Theory; Performance; Access permissions; permissions; data groups; concurrency; OWNERSHIP TYPES;
D O I
10.1145/2543920
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Writing concurrent applications is extremely challenging, not only in terms of producing bug-free and maintainable software, but also for enabling developer productivity. In this article we present the AEMINIUM concurrent-by-default programming language. Using AEMINIUM programmers express data dependencies rather than control flow between instructions. Dependencies are expressed using permissions, which are used by the type system to automatically parallelize the application. The AEMINIUM approach provides a modular and composable mechanism for writing concurrent applications, preventing data races in a provable way. This allows programmers to shift their attention from low-level, error-prone reasoning about thread interleaving and synchronization to focus on the core functionality of their applications. We study the semantics of AEMINIUM through mu AEMINIUM, a sound core calculus that leverages permission flow to enable concurrent-by-default execution. After discussing our prototype implementation we present several case studies of our system. Our case studies show up to 6.5X speedup on an eight-core machine when leveraging data group permissions to manage access to shared state, and more than 70% higher throughput in a Web server application.
引用
收藏
页数:42
相关论文
共 32 条
  • [1] AEMINIUM: A Permission Based Concurrent-by-Default Programming Language Approach
    Stork, Sven
    Naden, Karl
    Sunshine, Joshua
    Mohr, Manual
    Fonseca, Alcides
    Marques, Paulo
    Aldrich, Jonathan
    ACM SIGPLAN NOTICES, 2014, 49 (06) : 26 - 26
  • [2] The Design and Formalization of Mezzo, a Permission-Based Programming Language
    Balabonski, Thibaut
    Pottier, Francois
    Protzenko, Jonathan
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2016, 38 (04):
  • [3] Permission-Based Programming Languages (NIER Track)
    Aldrich, Jonathan
    Garcia, Ronald
    Hahnenberg, Mark
    Mohr, Manuel
    Naden, Karl
    Saini, Darpan
    Stork, Sven
    Sunshine, Joshua
    Tanter, Eric
    Wolff, Roger
    2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, : 828 - 831
  • [4] A static analysis approach for Android permission-based malware detection systems
    Arif, Juliza Mohamad
    Ab Razak, Mohd Faizal
    Awang, Suryanti
    Mat, Sharfah Ratibah Tuan
    Ismail, Nor Syahidatul Nadiah
    Firdaus, Ahmad
    PLOS ONE, 2021, 16 (09):
  • [5] ConGolog, a concurrent programming language based on the situation calculus
    De Giacomo, G
    Lespérance, Y
    Levesque, HJ
    ARTIFICIAL INTELLIGENCE, 2000, 121 (1-2) : 109 - 169
  • [6] A network programming language based on concurrent processes and regular expressions
    Hatori, Kenta
    Hiraki, Kei
    PROCEEDINGS OF THE IASTED INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2007, : 105 - +
  • [7] An Epistemic Programming Approach for Automated Nonmonotonic Reasoning based on Default Logic
    Goto, Yuichi
    Ito, Takuya
    2018 IEEE SMARTWORLD, UBIQUITOUS INTELLIGENCE & COMPUTING, ADVANCED & TRUSTED COMPUTING, SCALABLE COMPUTING & COMMUNICATIONS, CLOUD & BIG DATA COMPUTING, INTERNET OF PEOPLE AND SMART CITY INNOVATION (SMARTWORLD/SCALCOM/UIC/ATC/CBDCOM/IOP/SCI), 2018, : 222 - 227
  • [8] MC# 2.0: a language for concurrent distributed programming based on .NET
    Serdyuk, Yury
    NET TECHNOLOGIES 2006, FULL PAPERS PROCEEDINGS, 2006, : 71 - 78
  • [9] A PROJECT-BASED APPROACH TO PROGRAMMING LANGUAGE EVALUATION
    HOWATT, J
    SIGPLAN NOTICES, 1995, 30 (07): : 37 - 40
  • [10] A game-based approach for learning a programming language
    Javier Astudillo, Gustavo
    Gabriela Bast, Silvia
    Adolfo Willging, Pedro
    VIRTUALIDAD EDUCACION Y CIENCIA, 2016, 7 (12): : 125 - 142