| P.M. Achten, J.H.G. van Groningen, and M.J. Plasmeijer. High-level specification of i/o in functional languages. In John Launchbury, editor, Proceedings Glasgow Workshop on Functional Programming. Springer-Verlag, 1992. |
....but pragmatic aspect. In Appendix 5 we will see how Epic offers the ability to define functions with side effects, which can be used to read write from to files and I O devices. Recently, formal models have been developed which explain what I O means in the context of side effect free languages [AvGP92, P JW93, Mog89, WK95] No such model is implemented in Epic ARM, and we will not go into it in this report. 6. Input and output 30 initially be lifted to str( 1, str( str( str( str( 1,eos) but may have to be transformed into plus(one,one) before it can be processed further. A ....
P.M. Achten, J.H.G. van Groningen, and M.J. Plasmeijer. High-level specification of i/o in functional languages. In John Launchbury, editor, Proceedings Glasgow Workshop on Functional Programming. Springer-Verlag, 1992.
....algorithms from the imperative world. Concurrent Clean (Huitema Plasmeijer, 1992) opts for the third approach, but unlike Standard ML implementations, manages to do so quite elegantly, providing safe access to ephemeral imperative structures, including arrays, by the use of unique types (Achten et al. 1993), which are similar to the linear types proposed by Philip Wadler (1990b) Unique types allow access to mutable structures by enforcing a restriction that there can only be one copy of any pointer to such structures. The mechanism allows array algorithms from the imperative world to be ported A ....
Achten, P. M., van Groningen, J.H.G., & Plasmeijer, M. J. (1993). High-level specification of I/O in functional languages. et al, Launchbury (ed), Proceedings of the Glasgow workshop on functional programming. Springer-Verlag.
....languages, formal semantics. Note: Partial support received from the Foundation for Computer Science Research in the Netherlands (SION) under project 612 17 418, Generic Tools for Program Analysis and Optimization . 1. Introduction Several models have been formulated [Lan65, JW93, AvGP92] which aim to reconcile the sideeffect free nature of functional languages with the inherently imperative nature of I O. This is a hard nut to crack, since the very purpose of I O is the effectuation of side effects. Side effects invalidate referential transparency, thereby inhibiting equational ....
....sequentialization of operations, thereby opposing non determinism and lazy program evaluation [JW93] Most prominently, monadic I O is found to be a model which addresses these issues, and which has all desired operational and formal properties. The basis of the models described in [Lan65, JW93, AvGP92] including that of monadic I O, is a strict sequentialization of I O operations. Equational languages (we aren t aware of a generally accepted meaning of this phrase, so we use it loosely) such as OBJ ( GKK 88, KKM88] or ASF SDF ( BHK89] are closely related to functional languages. One of ....
[Article contains additional citation context not shown here]
P.M. Achten, J.H.G. van Groningen, and M.J. Plasmeijer. High-level specification of i/o in functional languages. In John Launchbury, editor, Proceedings Glasgow Workshop on Functional Programming. Springer-Verlag, 1992.
.... applyST is st If the supplied list is [1; 2; n] where n is the number of elements, applyST behaves as the apply to all function. Suppose that anArr : MutArr s Int is a mutable array of size three with all elements initialized to 0, then the expression anArr appR (applyST [1, 2, 2, 2, 2, 1, 3] incrST) counts the frequency of the elements of the given list the array is modified so that its first, second and third elements are 2, 4 and 1 respectively. Of course, an equivalent program can be written in the explicit style. The advantage of the implicit style here is that it is obvious ....
Peter Achten, John van Groningen, and Rinus Plasmeijer. High level specification of I/O in functional languages. In Launchbury et al., editors, Proceedings of Glasgow Workshop on Functional Programming. Springer Verlag, 1993.
....[19] His optimizations are in a later phase of constraint satisfaction than our work; we are concerned with the initial selection of which constraints to satisfy, while he is more concerned with how to satisfy those selected constraints. The Fudgets system [8] and the Concurrent Clean I O System [1] are two recent investigations into declarative GUI programming in lazy functional languages. These two systems combine lazy and eager features in ways that are slightly different from EM. Fudgets, although it is 4 implemented in the lazy languages Haskell and LML, uses an eager strategy ....
Achten, P., van Gronigen, J., Plasmeijer, M. High level specification of I/O in functional languages, 5th Annual Glasgow Workshop on Functional Programming, Springer Verlag LNCS, (1992).
....5.3 The pattern matching case statement. 79 5.4 The danger of losing sharing when lambda lifting. 80 5.5 The reduction of square (3 1) 81 5. 6 Three stages in the evaluation of foldr plus 0 [1,2,3,4]. 83 5.7 (Haskell) Definition of foldr. 83 5.8 square (3 1) as a graph tree. 85 5.9 Definition of fib. 85 5.10 Two possible displays of ....
....history parameter as additional argument to every function, and as part of every result, though it is unchanged except for occasions where I O takes place. The history component models the state of I O devices and the file system. Another more recent proposal comes from the University of Nijmegen [2], regarding the language Concurrent Clean. Several mechanisms are involved in their treatment of I O. Firstly there is explicit environment passing where needed: rather than passing the environment to all functions, or to none, it is passed only to functions with side effects. Secondly, single ....
[Article contains additional citation context not shown here]
P. M. Achten, J. H. G. van Groningen, and M. J. Plasmeijer. High level specification of I/O in functional languages. In John Launchbury and Patrick Sansom, editors, Functional Programming, Glasgow 1992, pages 1--17. Springer-Verlag, 1992.
....the construction of Windows programs in Standard ML. Examples are given to illustrate the toolkit and the potential benefits are discussed. 1 . Introduction Relatively recently, there has been a breakthrough in the application of functional languages to graphical user interface (GUI) programming [1,2,3,4]. Some of the ideas coming from this recent research have been used in the construction of our graphical user interface toolkit Visual ML for use with Windows 95 and Windows NT. The toolkit was designed to make Windows programming easy allowing GUI construction to be done with a conventional ....
....attributes) The whole application is simply started with: runApplication lifeApp (30,40) 4 . Related work There has been much recent work on functional graphical user interfaces. A number of functional toolkits currently exist which make use of the facilities provided by functional languages [1,2,3,4,12,13]. Some approaches interface directly to the procedural event loop model as in [1,2,13] while others make explicit use of concurrency [3,4] The lazy language implementations (Fudgets [2] for lazy ML; Clean [1] and Haggis [3] using Monadic IO in Haskell [12] differ in the way side effects are ....
[Article contains additional citation context not shown here]
P.Achten, J. van Groningen, R. Plasmeijer, High Level Specification of I/O in Functional Languages, Functional Programming Workshop - Workshops in Computing, 1992, pub Springer Verlag
....like. The structure of the Haskell program we use is similar to the typical event loop found in imperative languages, but unfortunately can get complicated because of the amount of state and channels being passed between functions. Using mechanisms similar to that in the Concurrent Clean system [2], it may be possible to structure the functional program in a cleaner way. 3.2 Examples Typically, the Haskell program takes no part in the layout of the interface, and how it works; all this is left to the Tcl program. The Haskell program deals with higher level decisions, such as what ....
P. M. Achten, J. H. G. van Groningen & M. J. Plasmeijer, "High level specification of I/O in functional languages," in Functional Programming, Glasgow 1992 , J Launchbury & PM Sansom, eds., Springer-Verlag, Workshops in Computing, Ayr, Scotland, 1992.
.... propositions as types notion. A combination of conventional and uniqueness typing has been incorporated in the lazy functional graph rewriting language Concurrent Clean. So far, it has been used for the implementation of arrays and of an efficient high level library for screen and file I O (see Achten et al. 1993]) 2. Graph rewriting Term graph rewrite systems were introduced in Barendregt et al. 1987b] This section summarizes some basic notions for (term) graph rewriting as presented in Barendsen Smetsers [1992] The objects of our interest are directed graphs in which each node has a specific ....
Achten P.M., J.H.G. van Groningen and M.J. Plasmeijer, High Level Specification of I/O in Functional Languages, in: Proc. of International Workshop on Functional Languages, Glasgow, UK, Springer Verlag, 1993.
....On the other hand, a statically typed correct program never goes wrong in future unless the database schema is invalidated. 7.3 Checking linearity Some language systems detect the serializability of impure constructs in an expression. A well known functional programming language is Clean (Achten et al. 1993). Its type checker detects the side effects of expressions and ensures the linearity of the effects not be compromised. Similar linearity analysis is also found in PFL (Sutton and Small 1995) An example of such erroneous expressions is thus (include t r; exclude t r) where the first ....
Achten, P., J. van Groningen, and R. Plasmeijer (1993). High level specification of I/O in functional languages.
....proofs by typed graphs) A combination of conventional and uniqueness typing has been incorporated in the lazy functional graph rewriting language Concurrent Clean. So far, it has been used for the implementation of arrays and of an efficient high level library for screen and file I O (see Achten et al. 1993]) Structure of this paper We start with a brief introduction to graph rewriting. In section 3, we describe the Curry like basis of graph typing. After an informal introduction to uniqueness typing (section 4) the reference analysis mentioned above is worked out in section 5. The sections 6 ....
Achten P.M., J.H.G. van Groningen and M.J. Plasmeijer, High Level Specification of I/O in Functional Languages, in: Proc. of International Workshop on Functional Languages, Glasgow, UK, Springer Verlag, 1993.
.... the hardware, increasing the applicability of functional languages, and to avoid the design constraints of another programming paradigm (e.g. event polling loops or callbacks) Besides, others have already produced interfaces between lazy functional languages and imperative window managers (e.g. [CH93, AvGP92, RS93, Sin92]) Our aim is to hide the work involved in sharing the screen between layers of images (e.g. redrawing images that become uncovered) from the Gadget programmer. A Gadget s connection to the SM may be viewed as a connection to the image itself. A new drawing sent to the image (really to the SM) ....
P. M. Achten, J. H. G. van Gronigen, and M. J. Plasmeijer. High level specification of I/O in functional languages. In Fifth Annual Glasgow Workshop of Functional Programming, Ayr 6th-8th July 1992., July 1992.
....an example of visual systems that use LazyEM. Clock [9] a visual functional language for groupware development, is another example. Some textual declarative languages also use methods similar to LazyEM to maintain continuous display of GUI objects (c.f. Fudgets [6] Concurrent Clean s I O system [1]) Hudson has formally presented and analyzed the LazyEM method, and has shown that LazyEM is optimal in the variables it selects for computation [10 11] However, our responsiveness requirement considers not only the cost of computation, but also adds in the cost of marking, and LazyEM is not ....
Achten, P., J. van Gronigen, M. Plasmeijer, High level specification of I/O in functional languages, Glasgow Wkshp. Functional Prog., Springer Verlag, 1992.
....in LML under the MGR window manager. Currently the following work is being carried out: Carlsson and Hallgren are working on the Fudgets [CH93] system (described in detail later in this chapter) Achten, van Groningen, Plasmeijer et al. are working on the Concurrent Clean I O system [AvGP92] described in detail later in this chapter) Both the Fudgets and Clean systems provide alternatives to the callback functions the Fudgets system turns callback events into messages for particular objects, and the Clean system has functions, similar to callbacks, but which are passed a ....
P. M. Achten, J. H. G. van Gronigen, and M. J. Plasmeijer. High level specification of I/O in functional languages. In Fifth Annual Glasgow Workshop of Functional Programming, Ayr 6th-8th July 1992., July 1992.
No context found.
Peter Achten, John van Groningen and Rinus Plasmeijer (1992). `High-level specification of I/O in functional languages'. In: Proc. of the Glasgow workshop on Functional programming, ed. J. Launchbury and P. Sansom, Ayr, Scotland, Springer-Verlag, Workshops in Computing, pp. 1-17.
....for the time and space behaviour of functional programs. The type system has been implemented for the lazy functional graph rewriting language Concurrent Clean. So far, it has been used for the implementation of arrays and of an efficient high level library for screen and file I O (see Achten et al. 1993)) The structure of the paper is as follows: first graph rewrite systems are briefly introduced using standard terminology (Section 2) Then, a notion of typing is defined for graph rewrite systems in Section 3. Section 4 describes a use analysis that provides important information that is ....
Achten, P.M., J.H.G. van Groningen and M.J. Plasmeijer (1993). High level specification of i/o in functional languages, Proc. of International Workshop on Functional Languages, Glasgow, UK, Springer Verlag,.
....engage in Graphical User Interface and file I O in a pure functional framework. The lazy, purely functional programming language Clean offers a library (written entirely in Clean) the Event I O system , to program complex Graphical User Interface applications on a high level of abstraction [1,3]. In essence an Event I O program is a structured set 1 of higher order functions (called abstract event handlers) that define what Graphical User Interface elements the program uses (such as menus, windows, dialogues, and timers) and also the response of the program to abstract events (such as ....
Achten, P.M., Groningen J.H.G. van, and Plasmeijer, M.J. 1993. High Level Spec ifica tion of I/O in Func - tional Languages. In Launchbury, J., Sansom, P. eds. Proc. Glasgow Workshop on Functional Programming , Ayr, Scotland, 6-8 July 1992, Workshops in Computing, Springer-Verlag, Berlin, 1993, pp. 1-17.
....made possible by the Uniqueness Type System of Clean (Smetsers et al., 1993; Barendsen and Smetsers, 1993a b; Plasmeijer and van Eekelen, 1993) which enables safe and restricted updates in a pure and functional framework. The second aspect provides programmers with the Clean Event I O framework (Achten et al. , 1993; Achten and Plasmeijer, 1993) to program Graphical User I O in a highly structured and declarative way. The specifications of interactive programs are functional and programs can be reasoned about without any assumption about operating systems. The I O system demonstrates that functional ....
Achten, P.M., van Groningen J.H.G., and Plasmeijer, M.J. 1993. High Level Specifica tion of I/O in Functional Languages. In Launchbury, J., Sansom, P.
....and Smetsers, 1993) that offers the possibility to directly interface the pure functional world with the imperative world by guaranteeing single threaded use of destructible objects. How Graphical User Interfaces can be suitably programmed in such a functional language has been reported in Achten et al. (1993) and Achten and Plasmeijer (1994) The Event I O system is a one process at a time system. At all times during evaluation of an Event I O program there is at most one interactive process running. This is not a satisfying situation for a number of reasons: programs may want to spawn interactive ....
Achten, P.M., van Groningen J.H.G., and Plasmeijer, M.J. 1993. High Level Specifica tion of I/O in Functional Languages. In Launchbury,J., Sansom,P. eds., Proceedings Glasgow Workshop on Functional Programming, Ayr,Scotland, 6-8 June 1992. Workshop Notes in Com - puter Science. Springer-Verlag,Berlin,1993, pp 1-17.
No context found.
To appear. Achten, P.M., J.H.G. van Groningen and M.J. Plasmeijer (1993). High level specification of I/O in functional languages, Proceedings of the International Workshop on Functional Languages, Lecture Notes in Computer Science, Springer-Verlag, Berlin.
No context found.
PM Achten, JHG van Groningen & MJ Plasmeijer [1992], "High-level specification of I/O in functional languages," in Proc Glasgow Workshop on Functional Programming, Launchbury et al, ed., Springer Verlag.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC