Using concurrent Haskell to develop views over an active repository

  • Einar W. Karlsen
  • Stefan Westmeier
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1467)


The UniForM WorkBench is an integration framework with Haskell features in support of data, control and presentation integration. Using the WorkBench, it is possible to implement the entire Software Development Environment for Haskell — using Haskell itself. The paper presents the higher order approach to event handling used within the WorkBench, as well as the persistent repository with version management support. It is then demonstrated how views over this repository are kept consistent, on the fly, in a multi-user environment using the Model-View-Controller paradigm. Interactors are set up to maintain consistency between a view and its underlying repository by coordinating database change notifications and user interactions. These events are represented as first class, composable event values.


Functional Programming Functional Language Event Handling Event Descriptor Event Value 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. The MIT Press, Cambridge, Massachusetts, 1986.Google Scholar
  2. [2]
    J. A. Bergstra and P. Klint. The Toolbus — a Component Interconnection Architecture. Technical Report P9408, University of Amsterdam, 1994.Google Scholar
  3. [3]
    The H-PCTE Crew. H-PCTE vs. PCTE, version 2.8. Technical report, Universität Siegen, June 1996.Google Scholar
  4. [4]
    ECMA. Portable Common Tool Environment (PCTE) — Abstract Specification. European Computer Manufacturers Association, 3 edition, December 1994. Standard ECMA-149.Google Scholar
  5. [5]
    A. M. Farkas, A. Dearie, G. N. C. Kirby, Q. I. Cutts, R. Morrison, and R. C. H. Connor. Persistent Program Construction through Browsing and User Gesture with some Typing. In Proc. 5th International Workshop on Persistent Object Systems. San Miniato, Italy, 1992.Google Scholar
  6. [6]
    S. Finne and S. Peyton Jones. Composing Haggis. In Proceedings of the Fifth Eurographics Workshop on Programming Paradigms for Computer Graphics. Springer, 1995.Google Scholar
  7. [7]
    M. Föhlich and M. Werner, daVinci V2.0.3 Online Documentation. Universität Bremen,, 1997.Google Scholar
  8. [8]
    T. Frauenstein, W. Grieskamp, P. Pepper, and M. Südholt. Communicating Functional Agents and their Application to Graphical User Interfaces. In Proceedings of the 2nd International Conference on Perspectives of System Informatics, Novosibirsk, Lecture Notes in Computer Science. Springer, 1996.Google Scholar
  9. [9]
    A. Giacalone, P. Mishra, and P. Sanjiva. Facile: A Symmetrie Integration of Concurrent and Functional Programming. International Journal of Parallel Programming, 18(2): 121–160, 1989.CrossRefGoogle Scholar
  10. [10]
    M. Hallgren and M. Carlsson. Programming with Fudgets. In First International Spring School on Advanced Functional Programming Techniques, volume 925 of Lecture Notes in Computer Science. Springer, May 1995.Google Scholar
  11. [11]
    M. P. Jones and J. C. Peterson. Hugs 1.4, The Nottingham and Yale Haskell User's System, April 1997.Google Scholar
  12. [12]
    E. W. Karlsen. Integrating Interactive Tools using Concurrent Haskell and Synchronous Events. In CLaPF'97: 2nd Latin-American Conference on Functional Programming, September 1997.Google Scholar
  13. [13]
    E. W. Karlsen. The UniForM Concurrency Toolkit and its Extensions to Concurrent Haskell. In GWFP'97: Glasgow Workshop on Functional Programming, September 1997.Google Scholar
  14. [14]
    E. W. Karlsen. The UniForM User Interaction Manager. Technical report, FB 3, Universität Bremen, Germany, 1998.Google Scholar
  15. [15]
    E. W. Karlsen. The UniForM WorkBench — a Higher Order Tool Integration Framework. Technical report, FB 3, Universität Bremen, Germany, 1998.Google Scholar
  16. [16]
    G. Krasner and S. Pope. A Cookbook for using the Model-View-Controller User Interface Paradigm in Smalltalk-80. Journal of Object Oriented Programming, 1(3): 26–49, 1988.Google Scholar
  17. [17]
    B. Krieg-Brückner, J. Peleska, E. R. Olderog, D. Balzer, and A. Baer. Universal Formal Methods Workbench. In U. Grote and G. Wolf, editors, Statusseminar des BMBF: Softwaretechnologie. Deutsche Forshungsanstalt für Luft-und Raumfahrt, Berlin, 1996. Available at Scholar
  18. [18]
    C. Lüth, S. Westmeier, and B. Wolff. smltk: Functional Programming for Graphical User Interfaces. Technical Report 8/96, FB 3, Universität Bremen, 1996.Google Scholar
  19. [19]
    Sun Microsystems. JavaBeans 1.0. JavaSoft, December 1996.Google Scholar
  20. [20]
    R. Noble and C. Runciman. Gadgets: Lazy Functional Components for Graphical. User Interfaces. In PLILP'95: Seventh International Symposium on Programming Languages, Implementations, Logics and Programs, volume 982 of LNCS, pages 321–340. Springer, September 1995.Google Scholar
  21. [21]
    W. Norzel. Building Abstractions for Concurrent Programming in Concurrent Haskell. Master thesis (in german), FB 3, Universität Bremen, Germany, April 1997.Google Scholar
  22. [22]
    J. K. Ousterhout. Tcl and the Tk Toolkit. Addison Wesley, 1994.Google Scholar
  23. [23]
    S. Peyton Jones, A. Gordon, and S. Finne. Concurrent Haskell. In Principles of Programming Languages '96 (POPL'96), Florida, 1996.Google Scholar
  24. [24]
    S. Peyton Jones and P. Wadler. Imperative Functional Programming. In Proc. 20th ACM Symposium on Principles of Functional Programming, 1993.Google Scholar
  25. [25]
    J. H. Reppy. Higher-Order Concurrency. PhD thesis, Department of Computer Science, Cornell University, 1992.Google Scholar
  26. [26]
    D. Schefström and G. van den Broek. Tool Integration. Wiley, 1993.Google Scholar
  27. [27]
    P. Trinder. A Functional Database. PhD thesis, Department of Computer Science, University of Glasgow, 1990.Google Scholar
  28. [28]
    T. Vullings and W. Schulte. The Design of a Functional GUI Library using Constructor Classes. In Perspectives of System Informatics, volume 1181 of Lecture Notes in Computer Science. Springer, 1996.Google Scholar
  29. [29]
    S. Westmeier. Verwaltung versionierter persistenter Objekte in der UniForM WorkBench (UniForM OMS Toolkit). Master thesis, Bremen University, Germany, January 1998.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Einar W. Karlsen
    • 1
  • Stefan Westmeier
    • 1
  1. 1.Bremen Institute for Safe Systems (BISS), FB3 Mathematik und InformatikUniversität BremenGermany

Personalised recommendations