• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

On the Expressiveness of Purely Functional I/O Systems (1989)

by Paul Hudak , Raman S. Sundaresh
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 18
Next 10 →

Report on the programming language Haskell: A non-strict, purely functional language

by Paul Hudak, Philip Wadler, Arvind Brian, Boutel Jon Fairbairn, Joseph Fasel, Kevin Hammond, John Hughes, Thomas Johnsson, Dick Kieburtz, Rishiyur Nikhil, Simon Peyton Jones, Mike Reeve, David Wise, Jonathan Young - ACM SIGPLAN Notices , 1992
"... ..."
Abstract - Cited by 216 (6 self) - Add to MetaCart
Abstract not found

How to Declare an Imperative

by Philip Wadler , 1995
"... How canweintegrate interaction into a purely declarative language? This tutorial describes a solution to this problem based on a monad. The solution has been implemented in the functional language Haskell and the declarative language Escher. Comparisons are given to other approaches to interaction b ..."
Abstract - Cited by 94 (3 self) - Add to MetaCart
How canweintegrate interaction into a purely declarative language? This tutorial describes a solution to this problem based on a monad. The solution has been implemented in the functional language Haskell and the declarative language Escher. Comparisons are given to other approaches to interaction based on synchronous streams, continuations, linear logic, and side effects.

Gadgets: Lazy Functional Components for Graphical User Interfaces

by Rob Noble, Colin Runciman , 1995
"... . We describe a process extension to a lazy functional programming system, intended for applications with graphical user interfaces (GUIs). In the extended language, dynamically-created processes communicate by asynchronous message passing. We illustrate the use of the language, including as an exte ..."
Abstract - Cited by 26 (0 self) - Add to MetaCart
. We describe a process extension to a lazy functional programming system, intended for applications with graphical user interfaces (GUIs). In the extended language, dynamically-created processes communicate by asynchronous message passing. We illustrate the use of the language, including as an extended example a simple board game in which squares are implemented as concurrent processes. We also describe a window manager, itself implemented in the extended functional language. Keywords: functional language, processes, concurrency, window manager, Gofer. 1 Introduction and Motivation Most of the time, elements of a graphical user interface (GUI) operate independently. For example, a menu doesn't interact with the rest of the program until the user selects an option. The user can highlight options, open up further menus or move the menu around the screen, all without doing anything that should concern any other element of the program. Popular languages such as C do not readily lend the...

Mutable abstract datatypes -- or -- how to have your state and munge it too

by Paul Hudak , 1992
"... 1 Introduction It's been said many times before: "Functional languages are great, but they can't deal with state! " to which functional programmers often reply: "But a compiler that's great, will eliminate state!" Although recent advances in compiler optimization techniques have ..."
Abstract - Cited by 16 (3 self) - Add to MetaCart
1 Introduction It's been said many times before: "Functional languages are great, but they can't deal with state! " to which functional programmers often reply: "But a compiler that's great, will eliminate state!" Although recent advances in compiler optimization techniques have eliminated many concerns over efficiency, optimizations have their own set of problems: (1) they are often expensive (in terms of compilation resources), (2) they aren't always good enough, (3) they are often hard to reason about, and (4) they are implementation dependent (and thus programs that depend on them are not portable). Perhaps more importantly, compiler optimizations aren't explicit, and in this sense are not "expressive " enough.

Functional Languages and Graphical User Interfaces -- a review and a case study

by Rob Noble , Colin Runciman , 1994
"... At first sight, I/O in a pure functional language is not as straightforward as in imperative languages. For some years work has been going on to alleviate these problems, and there are now a number of different approaches. The purpose of this report is twofold --- firstly we shall review the problem ..."
Abstract - Cited by 15 (1 self) - Add to MetaCart
At first sight, I/O in a pure functional language is not as straightforward as in imperative languages. For some years work has been going on to alleviate these problems, and there are now a number of different approaches. The purpose of this report is twofold --- firstly we shall review the problems encountered in performing I/O in a functional language and look at some of the ways these might be conquered, and secondly we shall look at some more recent solutions to I/O which encompass graphical interfaces.

An Operational Semantics for I/O in a Lazy Functional Language

by Andrew D. Gordon - in Proc Functional Programming Languages and Computer Architecture , 1993
"... I/O mechanisms are needed if functional languages are to be suitable for general purpose programming and several implementations exist. But little is known about semantic methods for specifying and proving properties of lazy functional programs engaged in I/O. As a step towards formal methods of rea ..."
Abstract - Cited by 9 (3 self) - Add to MetaCart
I/O mechanisms are needed if functional languages are to be suitable for general purpose programming and several implementations exist. But little is known about semantic methods for specifying and proving properties of lazy functional programs engaged in I/O. As a step towards formal methods of reasoning about realistic I/O we investigate three widely implemented mechanisms in the setting of teletype I/O: synchronised-stream (primitive in Haskell), continuationpassing (derived in Haskell) and Landin-stream I/O (where programs map an input stream to an output stream of characters) . Using methods from Milner's CCS we give a labelled transition semantics for the three mechanisms. We adopt bisimulation equivalence as equality on programs engaged in I/O and give functions to map between the three kinds of I/O. The main result is the first formal proof of semantic equivalence of the three mechanisms, generalising an informal argument of the Haskell committee. 1 Introduction and motivation...

Models for Persistence in Lazy Functional Programming Systems

by David John McNally, Ky Ss, Tony Davie, Al Dearle, Simon Peyton Jones, Stef Joosten, Graham Kirby , 1993
"... Research into providing support for long term data in lazy functional programming systems is presented in this thesis. The motivation for this work has been to reap the benefits of integrating lazy functional programming languages and persistence. The benefits are . the programmer need not write cod ..."
Abstract - Cited by 8 (0 self) - Add to MetaCart
Research into providing support for long term data in lazy functional programming systems is presented in this thesis. The motivation for this work has been to reap the benefits of integrating lazy functional programming languages and persistence. The benefits are . the programmer need not write code to support long term data since this is provided as part of the programming system . persistent data can be used in a type safe way since the programming language type system applies to data with the whole range of persistence . the benefits of lazy evaluation are extended to the full lifetime of a data value. Whilst data is reachable, any evaluation performed on the data persists. A data value changes monotonically from an unevaluated state towards a completely evaluated state over time. . interactive data intensive applications such as functional databases can be developed. These benefits are realised by the development of models for persistence in lazy functional programming systems. Tw...

Extending a Functional Programming System for Embedded Applications

by Malcolm Wallace, Colin Runciman - Software: Practice & Experience , 1995
"... This paper describes such a model, its implementation by extension to the Gofer programming system, and examples of its use. Performance results indicate that even this prototype interpretive system is adequate for small applications. The major gain of using a functional language is the ease with wh ..."
Abstract - Cited by 7 (2 self) - Add to MetaCart
This paper describes such a model, its implementation by extension to the Gofer programming system, and examples of its use. Performance results indicate that even this prototype interpretive system is adequate for small applications. The major gain of using a functional language is the ease with which abstraction can be layered over low-level detail, improving both the readability of code and its tractability

Deterministic Concurrency

by David Paul Carter - In Proceedings of the 1993 Glasgow Workshop on Functional Programming , 1993
"... Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of non-determinism. ..."
Abstract - Cited by 7 (0 self) - Add to MetaCart
Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of non-determinism.

An infrastructure for Mobile Information Systems based on a Fragmented Object Model

by Thomas Kirste - Distributed Systems Engineering Journal , 1995
"... Global information management systems based on the vision of the "docuverse" -- such as the WorldWide Web (WWW) -- show that on-line access to vast amounts of distributed information is possible not only for the expert, but also for the end user. At the same time, the availability of affordable mid- ..."
Abstract - Cited by 6 (5 self) - Add to MetaCart
Global information management systems based on the vision of the "docuverse" -- such as the WorldWide Web (WWW) -- show that on-line access to vast amounts of distributed information is possible not only for the expert, but also for the end user. At the same time, the availability of affordable mid- and longrange wireless data communication services, based, e.g., on cellular phone technology, has put the vision of ubiquitous mobile information access within the reach of viable projects. It is now an interesting challenge to combine both concepts into a system model granting everyone ubiquitous access to the global information repository. However, problems such as low bandwidth and limited resources make this a non-trivial task. This paper describes MIS/0, an experimental mobile information system based on wireless data communication which has been developed at the Computer Graphics Center during 1994. MIS/0 and its underlying concepts address the above mentioned problem areas by introd...
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University