concurrent programming
Recently Published Documents


TOTAL DOCUMENTS

385
(FIVE YEARS 15)

H-INDEX

25
(FIVE YEARS 1)

2021 ◽  
Vol 5 (ICFP) ◽  
pp. 1-30
Author(s):  
Pedro Rocha ◽  
Luís Caires

We develop a principled integration of shared mutable state into a proposition-as-types linear logic interpretation of a session-based concurrent programming language. While the foundation of type systems for the functional core of programming languages often builds on the proposition-as-types correspondence, automatically ensuring strong safety and liveness properties, imperative features have mostly been handled by extra-logical constructions. Our system crucially builds on the integration of nondeterminism and sharing, inspired by logical rules of differential linear logic, and ensures session fidelity, progress, confluence and normalisation, while being able to handle first-class shareable reference cells storing any persistent object. We also show how preservation and, perhaps surprisingly, progress, resiliently survive in a natural extension of our language with first-class locks. We illustrate the expressiveness of our language with examples highlighting detailed features, up to simple shareable concurrent ADTs.


2021 ◽  
Vol 178 (3) ◽  
pp. 229-266
Author(s):  
Ivan Lanese ◽  
Adrián Palacios ◽  
Germán Vidal

Causal-consistent reversible debugging is an innovative technique for debugging concurrent systems. It allows one to go back in the execution focusing on the actions that most likely caused a visible misbehavior. When such an action is selected, the debugger undoes it, including all and only its consequences. This operation is called a causal-consistent rollback. In this way, the user can avoid being distracted by the actions of other, unrelated processes. In this work, we introduce its dual notion: causal-consistent replay. We allow the user to record an execution of a running program and, in contrast to traditional replay debuggers, to reproduce a visible misbehavior inside the debugger including all and only its causes. Furthermore, we present a unified framework that combines both causal-consistent replay and causal-consistent rollback. Although most of the ideas that we present are rather general, we focus on a popular functional and concurrent programming language based on message passing: Erlang.


Author(s):  
Gedare Bloom ◽  
Joel Sherrill ◽  
Tingting Hu ◽  
Ivan Cibrario Bertolotti

2020 ◽  
Vol 28 (4) ◽  
pp. 319-330
Author(s):  
Yang Zhang ◽  
Liuxu Li ◽  
Dongwen Zhang

Refactoring has become an effective approach to convert sequential programs into concurrent programs. Many refactoring algorithms and tools are proposed to assist developers in writing high-performance concurrent programs. Although researchers actively conduct surveys on refactoring, we are not aware of any survey that summarizes, categorizes and discusses concurrency-oriented refactoring. To this end, this paper presents a survey that investigates how refactoring assists with concurrent programming. To the best of our knowledge, this paper is the first survey that summarizes the state-of-the-art, concurrency-oriented refactoring. First, we design six research questions addressing the concurrent structure, programming language, performance improvement and consistency evaluation. Second, we answer these questions by examining the related papers and then present the results to show how refactoring provides support for concurrent programming after a decade of development, such as transforming the concurrent structures, supporting parallel language, and improving performance. Finally, we summarize the related works and present the future trends.


2020 ◽  
Vol 16 ◽  
pp. 247-251
Author(s):  
Piotr Krasowski ◽  
Jakub Smołka

In recent years multithreaded processing has become a important programming aspect. Computers with a multi-core processor are now widely available, enabling the creation of more efficient applications. Many libraries support multithreaded solutions, but performance information is often lacking. The use of appropriate data structures and algorithms significantly speeds up the process of creation and development of applications. Article describes selected elements of the Qt and STL library and compares their performance in concurrent programming. The time needed to perform individual operations was analysed.


2020 ◽  
Author(s):  
Matheus Deon Bordignon ◽  
Rodolfo Adamshuk Silva

Computer processing capacity is becoming increasingly insufficientand it encourages the use of concurrent programming to developapplications that reduce the computing time. Due to features suchas communication, synchronization and non-determinism, concurrentprograms may present concurrency-related errors. This paperpresents a defect taxonomy for Elixir concurrent programs consideringthe functions present on Kernel and Task modules. Defectpatterns were identified from the insertion of small disturbancesinto concurrent functions present in a benchmark of concurrentElixir programs. The association between entered defects and concurrentprogramming errors has resulted in defect taxonomy forconcurrent Elixir programs. The defined taxonomy will be used tosupport the definition of criteria and testing tools for concurrentElixir programs.


Sign in / Sign up

Export Citation Format

Share Document