Communicating sequential processes
Communicating sequential processes
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lava: hardware design in Haskell
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Concurrent programming in ML
Science of Computer Programming - Special issue on mathematics of program construction
Events in Haskell, and how to implement them
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
Functional reactive programming, continued
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
A Layered Behavioural Model of Platelets
ICECCS '06 Proceedings of the 11th IEEE International Conference on Engineering of Complex Computer Systems
Applicative programming with effects
Journal of Functional Programming
Haskell session types with (almost) no class
Proceedings of the first ACM SIGPLAN symposium on Haskell
Multicore Scheduling for Lightweight Communicating Processes
COORDINATION '09 Proceedings of the 11th International Conference on Coordination Models and Languages
Causal commutative arrows and their optimization
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
A concurrent ML library in concurrent Haskell
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Push-pull functional reactive programming
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
The engineering of concurrent simulations of complex systems
CEC'09 Proceedings of the Eleventh conference on Congress on Evolutionary Computation
Hi-index | 0.00 |
Much code in message-passing programs is tedious, verbose wiring code. This code is error prone and laborious - and tends to be repeated across many programs with only slight variations. By using type-classes, higher-order and monadic functions in Haskell, most of this code can be captured in re-usable high-level combinators that shorten and simplify message-passing programs. We motivate the design and use of these combinators via an example of a concurrent biological simulation, and explain their implementation in the Communicating Haskell Processes library.