The design and implementation of Glasgow distributed Haskell

被引:0
|
作者
Pointon, RF [1 ]
Trinder, PW [1 ]
Loidl, HW [1 ]
机构
[1] Heriot Watt Univ, Dept Elect & Comp Engn, Edinburgh EH14 4AS, Midlothian, Scotland
来源
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper presents the design and implementation of Glasgow distributed Haskell (GdH), a non-strict distributed functional language. The language is intended for constructing scalable, reliable distributed applications, and is Haskell'98 compliant, being a superset of both Concurrent Haskell and Glasgow parallel Haskell (GpH). GdH distributes both pure and impure threads across multiple Processing Elements (PEs), each location is made explicit so a program can use resources unique to PE, and objects including threads can be created on a named PE. The location that uniquely owns a resource is identified by a method of a new Immobile type class. Impure threads communicate and synchronise explicitly to co-ordinate actions on the distributed state, but both pure and impure threads synchronise and communicate implicitly to share data. Limited support for fault tolerant programming is provided by distributed exception handling. The language constructs are illustrated by example, and two demonstration programs give a flavour of GdH programming. Although many distributed functional languages have been designed, relatively few have robust implementations. The GdH implementation fuses and extends two mature implementation technologies: the GUM runtime system (RTS) of GpH and the RTS for Concurrent Haskell. The fused RTS is extended with a small number of primitives from which more sophisticated constructs can be constructed, and libraries are adapted to the distributed context.
引用
收藏
页码:53 / 70
页数:18
相关论文
共 50 条
  • [1] Design and implementation of thunk recycling in the Glasgow Haskell Compiler
    Takano, Yasunao
    Iwasaki, Hideya
    Sato, Shigeyuki
    Computer Software, 2015, 32 (01) : 253 - 287
  • [2] Motivation for Glasgow distributed Haskell, a non-strict functional language
    Trinder, PW
    PARALLEL AND DISTRIBUTED COMPUTING FOR SYMBOLIC AND IRREGULAR APPLICATIONS, 2000, : 72 - 81
  • [3] Secrets of the Glasgow Haskell Compiler inliner
    Jones, SP
    Marlow, S
    JOURNAL OF FUNCTIONAL PROGRAMMING, 2002, 12 : 393 - 434
  • [4] A strategic profiler for Glasgow Parallel Haskell
    King, DJ
    Hall, J
    Trinder, P
    IMPLEMENTATION OF FUNCTIONAL LANGUAGES, 1999, 1595 : 88 - 102
  • [5] Transactional Boosting on Glasgow Haskell Compiler
    Conceicao, Jonathas A. O.
    Du Bois, Andre R.
    Ribeiro, Rodrigo G.
    2018 SYMPOSIUM ON HIGH PERFORMANCE COMPUTING SYSTEMS (WSCAD 2018), 2018, : 191 - 197
  • [6] Secrets of the Glasgow Haskell compiler inliner
    Jones, Simon Peyton
    Marlow, Simon
    Journal of Functional Programming, 2002, 12 (4-5) : 393 - 434
  • [7] Stretching the Glasgow Haskell Compiler Nourishing GHC with Domain-Driven Design
    Young, Jeffrey M.
    Henry, Sylvain
    Ericson, John
    PROCEEDINGS OF THE 1ST ACM SIGPLAN INTERNATIONAL WORKSHOP ON FUNCTIONAL SOFTWARE ARCHITECTURE, FUNARCH 2023, 2023, : 34 - 39
  • [8] Distributed programming in Haskell with ports
    Huch, F
    Norbisrath, U
    IMPLEMENTATION OF FUNCTIONAL LANGUAGES, 2001, 2011 : 107 - 121
  • [9] Correctness of an STM Haskell Implementation
    Schmidt-Schauss, Manfred
    Sabel, David
    ACM SIGPLAN NOTICES, 2013, 48 (09) : 161 - 172
  • [10] Correctness of an STM Haskell implementation
    Schmidt-Schauß, Manfred
    Sabel, David
    ACM SIGPLAN Notices, 2013, 48 (09): : 161 - 172