Abstract
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.
Preview
Unable to display preview. Download preview PDF.
References
G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. The MIT Press, Cambridge, Massachusetts, 1986.
J. A. Bergstra and P. Klint. The Toolbus — a Component Interconnection Architecture. Technical Report P9408, University of Amsterdam, 1994.
The H-PCTE Crew. H-PCTE vs. PCTE, version 2.8. Technical report, Universität Siegen, June 1996.
ECMA. Portable Common Tool Environment (PCTE) — Abstract Specification. European Computer Manufacturers Association, 3 edition, December 1994. Standard ECMA-149.
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.
S. Finne and S. Peyton Jones. Composing Haggis. In Proceedings of the Fifth Eurographics Workshop on Programming Paradigms for Computer Graphics. Springer, 1995.
M. Föhlich and M. Werner, daVinci V2.0.3 Online Documentation. Universität Bremen, http://www.inlormatik.uni-bremen.de/~davinci, 1997.
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.
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.
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.
M. P. Jones and J. C. Peterson. Hugs 1.4, The Nottingham and Yale Haskell User's System, April 1997.
E. W. Karlsen. Integrating Interactive Tools using Concurrent Haskell and Synchronous Events. In CLaPF'97: 2nd Latin-American Conference on Functional Programming, September 1997.
E. W. Karlsen. The UniForM Concurrency Toolkit and its Extensions to Concurrent Haskell. In GWFP'97: Glasgow Workshop on Functional Programming, September 1997.
E. W. Karlsen. The UniForM User Interaction Manager. Technical report, FB 3, Universität Bremen, Germany, 1998.
E. W. Karlsen. The UniForM WorkBench — a Higher Order Tool Integration Framework. Technical report, FB 3, Universität Bremen, Germany, 1998.
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.
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 http://www.informatik.uni-bremen.de/~uniform.
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.
Sun Microsystems. JavaBeans 1.0. JavaSoft, December 1996.
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.
W. Norzel. Building Abstractions for Concurrent Programming in Concurrent Haskell. Master thesis (in german), FB 3, Universität Bremen, Germany, April 1997.
J. K. Ousterhout. Tcl and the Tk Toolkit. Addison Wesley, 1994.
S. Peyton Jones, A. Gordon, and S. Finne. Concurrent Haskell. In Principles of Programming Languages '96 (POPL'96), Florida, 1996.
S. Peyton Jones and P. Wadler. Imperative Functional Programming. In Proc. 20th ACM Symposium on Principles of Functional Programming, 1993.
J. H. Reppy. Higher-Order Concurrency. PhD thesis, Department of Computer Science, Cornell University, 1992.
D. Schefström and G. van den Broek. Tool Integration. Wiley, 1993.
P. Trinder. A Functional Database. PhD thesis, Department of Computer Science, University of Glasgow, 1990.
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.
S. Westmeier. Verwaltung versionierter persistenter Objekte in der UniForM WorkBench (UniForM OMS Toolkit). Master thesis, Bremen University, Germany, January 1998.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Karlsen, E.W., Westmeier, S. (1998). Using concurrent Haskell to develop views over an active repository. In: Clack, C., Hammond, K., Davie, T. (eds) Implementation of Functional Languages. IFL 1997. Lecture Notes in Computer Science, vol 1467. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055437
Download citation
DOI: https://doi.org/10.1007/BFb0055437
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64849-9
Online ISBN: 978-3-540-68528-9
eBook Packages: Springer Book Archive