This is an Erlang solution to "The Santa Claus problem", % as discussed by Simon Peyton Jones (with a Haskell solution using % Software Transactional Memory) in "Beautiful code". % He quotes J.A.Trono "A new exercise in concurrency", SIGCSE 26:8-10, 1994.
A full stack, reactive architecture for general purpose programming. Algebraic and monadically composable primitives for concurrency, parallelism, event handling, transactions, multithreading, Web, and distributed computing with complete de-inversion of control (No callbacks, no blocking, pure state)
The C++ standardization committee is hard at work standardizing threads for the next version of C++. Some members recently met to discuss the issues, and The C++ Source was there. Read on to learn what the world’s leading experts on concurrency are plan
The result is a unified concurrency model providing both thread abstractions and event abstractions. We implemented the unified concurrency model in Haskell Our implementation demonstrates how to use these techniques by building an application-level thread library with support for multiprocessing and asynchronous I/O mechanisms in Linux. The thread library is type-safe, is relatively simple to implement, and has good performance. Application-level threads are extremely lightweight (scaling to 10,000,000 threads!) and our scheduler, which is implemented as a modular and extensible event-driven system, outperforms NPTL in I/O benchmarks.
R. Utterback, K. Agrawal, J. Fineman, and I. Lee. Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, page 83--94. ACM, (2016)
A. Matveev, N. Shavit, P. Felber, and P. Marlier. Proceedings of the 25th Symposium on Operating Systems Principles, page 168--183. New York, NY, USA, ACM, (2015)
H. Sun, D. Bonetta, F. Schiavio, and W. Binder. Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization, page 61--72. IEEE Press, (2019)
M. Frigo, P. Halpern, C. Leiserson, and S. Lewin-Berlin. Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures, page 79--90. New York, NY, USA, ACM, (2009)
M. Nielsen, V. Sassone, and G. Winskel. A Decade of Concurrency, Reflections and Perspectives, REX School/Symposium, page 425--476. London, UK, Springer-Verlag, (1994)
B. Morandi, S. Bauer, and B. Meyer. Advanced Lectures on Software Engineering, LASER Summer School 2007/2008, volume 6029 of Lecture Notes in Computer Science, page 41-90. Springer, (2008)
B. Claudel, Q. Sabah, and J. Stefani. Formal Techniques for Distributed Objects, Components, and Systems, volume 9039 of Lecture Notes in Computer Science, Springer, (2015)
J. Bezivin. OOPSLA '87: Conference proceedings on Object-oriented programming systems, languages and applications, page 394--405. New York, NY, USA, ACM, (1987)
J. Zhou, X. Xiao, and C. Zhang. Proceedings of the 34th International Conference on Software Engineering, page 892--902. Piscataway, NJ, USA, IEEE Press, (2012)
J. De Koster, S. Marr, and T. D'Hondt. Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming, page 317--318. ACM, (February 2012)(Poster).
J. De Koster, S. Marr, T. D'Hondt, and T. Van Cutsem. Proceedings of AGERE! 2013, 3rd International Workshop on Programming based on Actors, Agents, and Decentralized Control, page 61--68. (Oct 27, 2013)
B. Daloze, C. Seaton, D. Bonetta, and H. Mössenböck. Proceedings of the 10th International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems, (2015)
M. Herlihy. PODC '06: Proceedings of the twenty-fifth annual ACM symposium on Principles of distributed computing, page 1--2. New York, NY, USA, ACM, (2006)
J. Protze, M. Schulz, D. Ahn, and M. Müller. Proceedings of the 27th International Symposium on High-Performance Parallel and Distributed Computing, page 144--155. ACM, (2018)
H. Schippers, T. Van Cutsem, S. Marr, M. Haupt, and R. Hirschfeld. Proceedings of the Fourth Workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS), page 4--9. ACM, (Jul 6, 2009)
J. Swalens, S. Marr, J. De Koster, and T. Van Cutsem. Proceedings of the Workshop on Programming Language Approaches to Concurrency and communication-cEntric Software (PLACES), volume 155 of PLACES '14, page 54--60. (April 2014)
S. Marr, E. Gonzalez Boix, and H. Mössenböck. Proceedings of the 9th Arbeitstagung Programmiersprachen, volume 1559 of ATPS'16, page 91--95. CEUR-WS, (Feb 25, 2016)
J. Swalens, J. De Koster, and W. De Meuter. 30th European Conference on Object-Oriented Programming (ECOOP 2016), volume 56 of Leibniz International Proceedings in Informatics (LIPIcs), page 23:1--23:28. Dagstuhl, Germany, Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik, (2016)
S. Tasharofi, R. Karmani, S. Lauterburg, A. Legay, D. Marinov, and G. Agha. Formal Techniques for Distributed Systems: Joint 14th IFIP WG 6.1 International Conference, FMOODS 2012 and 32nd IFIP WG 6.1 International Conference, FORTE 2012, Stockholm, Sweden, June 13-16, 2012. Proceedings, page 219--234. Springer, (2012)
T. Tu, X. Liu, L. Song, and Y. Zhang. Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS \textquotesingle19, ACM, (2019)
S. Tasiran, A. Sezgin, and S. Quadeer. Design and Validation of Concurrent Systems, 09361, Dagstuhl, Germany, Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany, (2010)
B. Demsky, and P. Lam. Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, page 395--404. New York, NY, USA, ACM, (2010)
C. Ritson, and J. Simpson. Communicating Process Architectures 2008, volume 66 of Concurrent Systems Engineering Series, page 293--307. Amsterdam, The Netherlands, IOS Press, (September 2008)
S. Abramsky. Electronic Notes in Theoretical Computer Science, (2006)Proceedings of the Workshop "Essays on Algebraic Process Calculi" (APC 25)Proceedings of the Workshop "Essays on Algebraic Process Calculi" (APC 25).
S. Marr, M. De Wael, M. Haupt, and T. D'Hondt. Proceedings of the 5th Workshop on Virtual Machines and Intermediate Languages, page 341--348. ACM, (October 2011)
S. Tasharofi, P. Dinges, and R. Johnson. ECOOP 2013 – Object-Oriented Programming, volume 7920 of Lecture Notes in Computer Science, page 302-326. Springer Berlin Heidelberg, (2013)
R. von Behren, J. Condit, and E. Brewer. Proceedings of the 9th conference on Hot Topics in Operating Systems - Volume 9, page 4. Berkeley, CA, USA, USENIX Association, (2003)