Distributed Programming in Haskell: From Ports to Streams
Abstract:
Abstract. We present an extension of the lazy functional programming language Haskell for distributed programming. For the communication between processes we modify the port concept to a stream based approach. Ports are accessible over the Internet and behave like channels in Concurrent Haskell except that only the process which creates a port can read from it. This restriction is not enforceable at compile time and thus may yield undesired eects at runtime. By eliminating the need for explicit readPort statements and instead providing a stream of the items received on a port, we can guarantee safety in regard to this matter. The implementation consists of a library written entirely in Haskell which provides functions for creating new processes, communication between concurrent and distributed processes in an open system using ports or streams, and error handling with exceptions.
Citations
| 254 | network programming – Stevens - 1990 |
| 145 | Concurrent Haskell – Jones, Gordon, et al. - 1996 |
| 43 | Distributed programming in a multi-paradigm declarative language – Hanus - 1702 |
| 20 | The design and implementation of Glasgow Distributed Haskell – Pointon, Trinder, et al. - 2000 |
| 12 | Distributed programming in Haskell with ports – Huch, Norbisrath - 2000 |
| 11 | GUM: a portable implementation of Haskell – Trinder, Hammond, et al. - 1996 |
| 9 | Eden | the paradise of functional concurrent programming – Breitinger, Loogen, et al. - 1996 |
| 8 | et al. Haskell 98 Report – Jones - 1998 |
| 6 | Distributed Haskell: Gon on the Internet – Chakravarty, Guo, et al. - 1998 |
| 4 | Robuste verteilte Programmierung in Haskell – Stolz - 2001 |
| 2 | Erlang-style Distributed Haskell – Huch - 1999 |

