Volume 7 Number 5 (May. 2012)
Home > Archive > 2012 > Volume 7 Number 5 (May. 2012) >
JSW 2012 Vol.7(5): 1136-1148 ISSN: 1796-217X
doi: 10.4304/jsw.7.5.1136-1148

A new paradigm for component-based development

Johan G. Granstr¨om


Abstract—Hancock and Setzer [10] describe how Haskell’s monolithic IO monad can be decomposed into worlds when working in a dependently typed language, like Martin-L¨of’s type theory [15]. This paper introduces the notion of world map and shows that worlds and world maps form a category with arbitrary products. The construction of the category is carried out entirely in type theory and directly implementable in dependently typed programming languages. If we let the notion of world replace the standard notion of interface, and the notion of world map replace the standard notion of component, we get a rigorous paradigm for componentbased development. This new paradigm is investigated and several applications are given. For example, the problem of session state is given a very clean solution (p. 8).

Index Terms—functional constructs, components, functional programming, semantics of programming languages

[PDF]

Cite: Johan G. Granstr¨om, "A new paradigm for component-based development," Journal of Software vol. 7, no. 5, pp. 1136-1148, 2012.

General Information

ISSN: 1796-217X (Online)
Frequency:  Quarterly
Editor-in-Chief: Prof. Antanas Verikas
Executive Editor: Ms. Yoyo Y. Zhou
Abstracting/ Indexing: DBLP, EBSCO, CNKIGoogle Scholar, ProQuest, INSPEC(IET), ULRICH's Periodicals Directory, WorldCat, etc
E-mail: jsweditorialoffice@gmail.com
  • Mar 01, 2024 News!

    Vol 19, No 1 has been published with online version    [Click]

  • Apr 26, 2021 News!

    Vol 14, No 4- Vol 14, No 12 has been indexed by IET-(Inspec)     [Click]

  • Nov 18, 2021 News!

    Papers published in JSW Vol 16, No 1- Vol 16, No 6 have been indexed by DBLP   [Click]

  • Jan 04, 2024 News!

    JSW will adopt Article-by-Article Work Flow

  • Nov 02, 2023 News!

    Vol 18, No 4 has been published with online version   [Click]