23 citations found. Retrieving documents...
J. Hughes and J. O'Donnell. Expressing and reasoning about nondeterministic programs. Functional Programming Glasgow 1989.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Tackling the Awkward Squad: monadic input/output, concurrency.. - Jones (2002)   (Correct)

....the set of exceptions. The idea is that an implementation can use an entirely conventional exception handling mechanism: when it evaluates an exceptional value, it rolls back the stack looking for a handler. In e ect it chooses a single member of the set of exceptions to act as its representative [16]. 5.2.2 Catching an imprecise exception I describe this scheme as using imprecise exceptions, because we are deliberately imprecise about which exception is chosen as the representative. How, then, can we catch and handle an exception At rst we might try a non IO version of catch: 40 ....

Hughes, R., and O'Donnell, J. Expressing and reasoning about non-deterministic functional programs. In Functional Programming, Glasgow 1989.


Tackling the Awkward Squad: monadic input/output, concurrency.. - Jones (2002)   (Correct)

....the set of exceptions. The idea is that an implementation can use an entirely conventional exception handling mechanism: when it evaluates an exceptional value, it rolls back the stack looking for a handler. In effect it chooses a single member of the set of exceptions to act as its representative [16]. 5.2.2 Catching an imprecise exception I describe this scheme as using imprecise exceptions, because we are deliberately imprecise about which exception is chosen as the representative. How, then, can we catch and handle an exception At first we might try a non IO version of catch: ....

HUGHES, R., AND O'DONNELL, J. Expressing and reasoning about non-deterministic functional programs. In Functional Programming, Glasgow 1989.


Implementing Declarative Parallel Bottom-Avoiding Choice - Bois, Pointon, Loidl, Trinder (2002)   (Correct)

....or languages with sharing, x x x) 3 amb 5) makes a single choice and has value 6 or 10, but (3 amb 5) 3 amb 5) makes two choices and has value 6, 8 or 10. Several means of introducing bottom avoiding choice while preserving semantic properties like unfoldability have been proposed, e.g. [2, 10, 19, 23] but very few truly parallel implementations have been constructed. Implementations are required to explore performance implications and subleties of the parallel operational semantics. There are some concurrent choice implementations that interleave the execution of speculative threads on a ....

....for Glasgow parallel Haskell (GPH) 22] The operators are unique in combining the preservation of unfoldability with a compiled parallel implementation. The choice operators are adaptions of McCarthy s amb that preserve unfoldability using an approach that extend proposals by Hughes and O Donnell [10] and Wadler [23] That is, each choice injects its result into a monad with restricted operations. The ND monad has the added convenience of syntactic support in Haskell, and hence the type of ambND : a a ND a This is often stated as losing referential transparency [20] the numerous ....

[Article contains additional citation context not shown here]

R. Hughes and J. O'Donnell. Expressing and Reasoning about Nondeterministic Functional Programs. In Glasgow Workshop on Functional Programming, pages 308-- 328. Springer-Verlag, 1989.


A Declarative Parallel Bottom-Avoiding Choice - Bois, Pointon, Loidl, Trinder (2002)   (Correct)

....[22] and the approaches used to avoid these problems are discussed in Section 5. We propose to adapt McCarthy s amb operator [16] to preserve unfoldability by injecting the result of the choice into a type with restricted operations. In essence the approach is the same Hughes and O Donnell s [12], but as we are working in Glasgow parallel Haskell it is natural to inject the result of the choice into a monad [7, 25] We introduce a new ND monad which can be thought of as a collection type and has very similar properties to Hughes and O Donnell s set type. The ND monad has the added ....

....an external resource for making decisions, as rst argument and records the decision made in each call. Referential transparency is preserved because once a choice is made for a given oracle, this choice is xed and later references to the same oracle yield the same value. Hughes and O Donnell [12] use the abstract data type approach and de ne a set type to represent the possible result values of a non deterministic operator. Since these sets can only be treated in their entirety, unfoldability is maintained. Furthermore, the operations permitted on the set type allow a cheap ....

R.J.M. Hughes and J. O'Donnell. Expressing and Reasoning about Nondeterministic Functional Programs. In Glasgow Workshop on Functional Programming, pages 308-328. Springer-Verlag, 1989.


Three Non-determinism Analyses in a Parallel-Functional Language - Peña, Segura (2001)   (Correct)

....is introduced in Eden by means of a predefined process abstraction merge : Process [ a] a] which fairly interleaves a set of input lists, to produce a single non deterministic list. The presence of non determinism creates some problems in Eden: It affects the referential transparency [HO90,SS90,SS92] of programs and invalidates some optimizations done in the GHC [San95] PS98] Such problems were precisely described in [PS01,PPRS00] In [PS01] a solution was proposed to solve this problem: To develop a static analysis to determine when an Eden expression is sure to be deterministic and ....

R. J. M. Hughes and J. O'Donnell. Expressing and Reasoning About Non-Deterministic Functional Programs. In Functional Programming: Proceedings of the


A Polynomial-Cost Non-determinism Analysis - Peña, Segura (2002)   (1 citation)  (Correct)

....is introduced in Eden by means of a prede ned process abstraction merge : Process [ a] a] which fairly interleaves a set of input lists, to produce a single non deterministic list. The presence of non determinism creates some problems in Eden: It a ects the referential transparency [8, 17] of programs and invalidates some optimizations done in the GHC [16] Such problems were precisely described in [11] In [11] a solution was proposed to solve this problem: To develop a static analysis to determine when an Eden expression is sure to be deterministic and when it may be ....

R. J. M. Hughes and J. O'Donnell. Expressing and Reasoning About NonDeterministic Functional Programs. In Functional Programming: Proceedings of the


Parallelism and Non-determinism in Pure Functional Languages - King (1992)   (Correct)

....takes a decision tree and uses it to choose the next output list item. Since the choice function can choose ONE or TWO based on which input list contains an available item, the merged list will contain the input items in order of arrival, as required in the keyboard and mouse example. Hughes [14] describes how a non deterministic set datatype can provide the same capabilities. Since programs can generate non deterministic sets using built in set operations, their use can be localized. This is unlike decision trees, where the system supplied tree must be passed throughout the program. ....

John Hughes, John O'Donnell, "Expressing and Reasoning About Non-deterministic Functional Programs," in Proc. of the 1989 Glasgow Workshop on Functional Prog., pp. 308-28.


Specification and Refinement of Functional Programs - Bunkenburg (1994)   (Correct)

....There is nothing nondeterministic about sets; therefore there is no problem in calculation. Problems would arise if one tried to define a function pick : Set :A A by: a = pick :S , a 2 S . This is not a definition, and pick is not a function. Phil Wadler [Wad92] and J. Hughes J. O Donnell [HO89] use sets for nondeterminacy. Wadler provides two translation schemes from a lambda calculus augmented by 2 to a lambda calculus augmented by sets. One implements call by value (singular) semantics, and the other call by name (plural) semantics. The set functions needed for the translation are ....

....the powerset monad . These sets are not the general purpose sets of the language, they are used for reasoning about nondeterminacy only; how they are implemented is another question. When a program is run, the system should only return one element of the result set, not the whole set. Therefore [HO89] have adopted a very lazy approach: a set is represented by one of its elements only. Union is implemented by choosing nondeterministically from the two elements representing each of the argument sets. Of course this approach excludes set intersection, the empty set, and set subtraction, but they ....

John Hughes and John O'Donnell. Expressing and reasoning about non-deterministic functional programs. In Kei Davis and John Hughes, editors, Functional Programming. Glasgow, Workshops in Computing Science, pages 308 -- 328. Springer Verlag, 1989.


Tackling the Awkward Squad: monadic input/output, concurrency.. - Jones (2000)   (Correct)

....the set of exceptions. The idea is that an implementation can use an entirely conventional exception handling mechanism: when it evaluates an exceptional value, it rolls back the stack looking for a handler. In e ect it chooses a single member of the set of exceptions to act as its representative [Hughes and O Donnell, 1989]. 6.4 Catching an imprecise exception I describe this scheme as using imprecise exceptions, because we are deliberately imprecise about which exception is chosen as the representative. How, then, can we catch and handle an exception At rst we might try a non IO version of catch: bogusCatch ....

Hughes, R. and O'Donnell, J. (1989). Expressing and reasoning about non-deterministic functional programs. In Davis, K. and Hughes, R., editors, Functional Programming, Glasgow 1989, pages 308-328. Workshops in Computing, Springer Verlag.


First Year Report - Winstanley (1997)   (Correct)

....non deterministic. Therefore, research into appropriate ways to represent this non determinism seems useful. 1.9.1 Previous Approaches We begin by reviewing previous approaches to non determinism. Sections of this review are based on the introduction to the area given by Hughes and O Donnell [12]. Non deterministic Functions The simplest method is to add functions whose result is not determined by their arguments. One such function is amb [16] which evaluates its two arguments in parallel and returns the rst to produce a value therefore it operates as a bottom avoiding choice. amb ....

....inputs. This approach is suitable for reactive programming, but not for problems with internal non determinism. As with the last approach a monadic programming style is necessary, which can become irksome for some problems. 1.9. 2 Non determinism with Sets A proposal made by Hughes and O Donnell [12] is to represent a non deterministic value by the set of values that it could possess. As this set of possibilities is fully de ned by the inputs to a non deterministic function, referential transparency is preserved. Obviously, enumerating all the possible outcomes of a non deterministic ....

John Hughes and John O'Donnell. Expressing and reasoning about nondeterministic functional programs. In Kei Davis and John Hughes, editors, Proceedings of the Glasgow Functional Workshop, pages 308-328, 1989.


Unique Fixed Point Induction for McCarthy's Amb - Lassen, Moran   (Correct)

....: o 3X C[xs Omega ] The desired result follows by unique fixed point induction and the inclusion : Merge is also commutative, associative and has the empty list as left and right unit. See [13] for proofs of these properties and other examples. Similar lemmas may be found in [8], but there one needs to take limits to include streams. Streams are included here without any extra effort on our part. ....

J. Hughes and J. T. O'Donnell. Expressing and reasoning about non-deterministic functional programs. In Functional Programming, Glasgow, 1989, Workshops in Computing. Springer, 1989.


Handling Exceptions in Haskell - Reid (1999)   (1 citation)  (Correct)

....programs that the programmer wishes to keep distinct; if we allow too little non determinism, then we must severely restrict exception handling and or limit the set of transformations which we consider valid. To resolve this problem, we borrow an idea from Hughes and O Donnell s seminal paper [5] on reasoning about non deterministic functional programs. Their main idea was to separate deterministic parts of their programs from non deterministic parts of their programs and to restrict non determinism to the top level of their programs. Applying this idea to exception handling, we take care ....

....of the program. The next two sections describe how we use non determinism when reasoning about exception handling. 4. 1 Non deterministic exceptions: a first attempt For a long time, we thought the way to make exception handling non deterministic was to take a second idea from Hughes and O Donnell [5]: 1. They introduce a new abstract data type fffg whose elements are sets of values of type ff but whose intended implementation is a single representative element chosen non deterministically from the set it represents. 2. Non deterministic expressions are clearly distinguished by their type: a ....

R. Hughes and J. O'Donnell. Expressing and reasoning about non-deterministic functional programs. In K. Davis and R. Hughes, editors, Glasgow Functional Programming Workshop, Workshops in Computing, pages 308--328. Springer Verlag, 1989.


A Semantics for Imprecise Exceptions - Jones, Reid, Hoare, Marlow (1998)   (23 citations)  (Correct)

....but if the program is recompiled with different optimisation settings, then indeed the order of evaluation might change, so a different exception might be encountered first, and so the exception returned by getException might change. This idea is based on an old paper by Hughes and O Donnell [12], but it was Fergus Henderson who first suggested how it could be adapted to the setting of exception handling [2] He was the first to realise that non determinism in the exceptions could be kept separate from non determinism in the normal values of a program. 4 Semantics Everything so far in ....

....the argument to getException is , then getException may diverge, or it may return an arbitrary exception. 5 Variations on the theme 5. 1 Pure functions on exceptional values Is it possible to do anything with an exceptional value other than choose an exception from it with getException Following [12], one possibility suggests itself as a new primitive function (i.e. one not definable with the primitives so far described) mapException : Exception Exception) a a Semantically, mapException applies its functional argument to each member of the set of exceptions (if any) in its second ....

RJM Hughes and JT O'Donnell. Expressing and reasoning about non-deterministic functional programs. In K. Davis and R. Hughes, editors, Glasgow Functional Programming Workshop, pages 308-- 328. Springer Workshops in Computing, 1989.


A Semantics for Imprecise Exceptions - Jones, Reid, Hoare, Marlow.. (1999)   (23 citations)  (Correct)

....might change, so a different exception might be encountered first, and hence the exception returned by getException might change. The idea of using a single representative to stand for a set of values, from which a non deterministic choice is made, is based on an old paper by Hughes and O Donnell [15]. Our contribution is to apply this idea in the setting of exception handling. The key observation is that non determinism in the exceptions can be kept separate from non determinism in the normal values of a program. 4 Semantics So far we have reasoned informally. In this section we give a ....

....a fictitious exception when the program gets into a loop, so this semantic technicality is unlikely to have practical consequences. 5. 4 Pure functions on exceptional values Is it possible to do anything with an exceptional value other than choose an exception from it with getException Following [15], one possibility suggests itself as a new primitive function (i.e. one not definable with the primitives so far described) mapException : Exception Exception) a a Semantically, mapException applies its functional argument to each member of the set of exceptions (if any) in its second ....

RJM Hughes and JT O'Donnell. Expressing and reasoning about non-deterministic functional programs. In K. Davis and R. Hughes, editors, Glasgow Functional Programming Workshop, pages 308-- 328. Springer Workshops in Computing, 1989.


A Partial Rehabilitation of Side-Effecting I/O.. - Schmidt-Schauß (1996)   (Correct)

....industrial implementation of a lazy functional language [HNMH96] In this paper we investigate side effecting I O using call by need. In Glasgow Haskell, this method is permitted by marking it as unsafe I O . There are a several papers that denounce this method as non referentially transparent [HO89, HO90] and hence discard it as a serious method for implementing I O in non strict functional languages. The implementation of Clean [NSvP91, PvE95] uses the method of direct calls via the operating system with a static analysis method to ensure safe use of this unsafe I Os. The underlying ....

....Clean appears to be fixed as a normal order reduction, hence there may be a problem in recognising correct program transformations if a strictness analyser and the unique type system are in a conflict. There is an approach using sets in a functional core language to express nondeterminism [HO90, HO89] This approach is different from ours, since it can express amb. It is interesting that our approach only works, if sharing of expressions is treated correctly. There are several recent papers that discuss a modellig of sharing in the calculus [AFM 95, Lau93, PS92, Yos93, GH90] A ....

J. Hughes and J. O'Donnell. Expressing and reasoning about non-deterministic functional programs. In Glasgow workshop on functional programming 1989, Workshops in Computing, pages 308--328. Springer-Verlag, 1989.


Programming Reactive Systems in Haskell - Finne, Jones (1994)   (8 citations)  (Correct)

.... plumbing errors, as the IO monad ensures that a choice is only performed once. This an improvement over the oracle approach (Section 5) where the programmer has to explicitly thread a supply of oracles through the program. ffl The choice is pure. This differs from the set based approach of [11, 22] where the formulation of merge requires the non deterministic selection between computations that contained a mix of code directly relevant to the selection and code to set up further merging. Because of this mixture, providing an efficient implementation is hard. chooseIO avoids this by simply ....

....into a function, by changing its definition just slightly: amb : a a fag Instead of returning either of its two arguments, the set of possible values amb can produce is returned. This idea of representing non deterministic computations by the sets of values they can denote is used in [11], where a collection of set operators for constructing and composing non deterministic computations 7 Assuming, of course, that oracle access is mutually exclusive. 8 Process addressing is done using a simple numeric scheme. are given. Referential transparency is retained, as none of the ....

[Article contains additional citation context not shown here]

John Hughes and John O'Donnell. Expressing and Reasoning About Nondeterministic Functional Programs. In Kei Davis and John Hughes, editors, Proceedings of the Glasgow Functional Workshop, pages 308--328, 1989.


Profiling scheduling strategies on the GRIP parallel.. - Kevin Hammond, Simon.. (1991)   (9 citations)  (Correct)

.... Examples include the MIT dataflow work, which introduces I structures [AE87] Warren Burton s work on improving values for branch andbound algorithms [Bur89] Hudak s para functional programming style [Hud86] Hughes and O Donnell s proposals for parallel non deterministic algorithms [HOD89]; and Roe s recent thesis [Roe91] For the most part, this work is unproven in practice, and needs to be implemented and evaluated on real parallel systems. ffl Secondly, does the system make effective use of the resources of the parallel machine Mapping the requirements of a parallel program ....

Hughes RJM and O'Donnell JT, "Expressing and reasoning about non-deterministic functional programs", Functional Programming, Glasgow 1989, ed Davis and Hughes, Springer Verlag Workshops in Computing, 1989.


A Non-Deterministic Call-by-Need Lambda Calculus - Kutzner, Schmidt-Schauß (1998)   (3 citations)  (Correct)

....reduction strategy is used e.g. Man95] Some other approaches [Ong93, DP95, San94] do not take care of sharing properties and thus suffer from the implicit choice problem mentioned in the introduction. Bottom avoiding choice operators like amb or por as investigated for example in [HO90, HO89, HM92, Bou94] corresponds to the operational semantics of (local) speculative evaluation; i.e. it is not like a committed choice. In [Bou94] confluence of a calculus using (por) is shown, which is related to the properties of nd , but the calculi are different, since nd builds upon a stronger ....

J. Hughes and J. O'Donnell. Expressing and reasoning about non-deterministic functional programs. In Glasgow workshop on functional programming 1989, Workshops in Computing, pages 308--328. Springer-Verlag, 1989.


Nondeterminism in the APM methodology - Goodman, O'Donnell (1999)   (2 citations)  Self-citation (O'donnell)   (Correct)

....have one value at one time, and a different value at another. For example, amb 1 2 can sometimes be 1 and sometimes 2. This breaks referential transparency which states that the same expression will always have the same value. There have been various solutions suggested to this problem (e.g. 1] [4]) We have decided to use the method suggested by Hughes and O Donnell in [4] This method represents a nondeterministic value by the set of its possible values instead of by a single value. This preserves referential transparency since a nondeterministic expression always has the same set value. ....

....1 2 can sometimes be 1 and sometimes 2. This breaks referential transparency which states that the same expression will always have the same value. There have been various solutions suggested to this problem (e.g. 1] 4] We have decided to use the method suggested by Hughes and O Donnell in [4]. This method represents a nondeterministic value by the set of its possible values instead of by a single value. This preserves referential transparency since a nondeterministic expression always has the same set value. This method was chosen because it does preserve referential transparency and ....

[Article contains additional citation context not shown here]

John Hughes and John O'Donnell. Expressing and reasoning about nondeterministic functional programs. In Functional Programming, Glasgow 1989, Springer-Verlag Workshops in Computing (1990), pages 308--328. Springer-Verlag, 1989.


Functional Quantum Programming - Mu, Bird   (Correct)

No context found.

J. Hughes and J. O'Donnell. Expressing and reasoning about nondeterministic programs. Functional Programming Glasgow 1989.


A Comparison between three Non-determinism - Analyses In Parallel-Functional   (Correct)

No context found.

R. J. M. Hughes and J. O'Donnell. Expressing and Reasoning About NonDeterministic Functional Programs. In Functional Programming: Proceedings of the 1989 Glasgow Workshop, pages 308--328. Springer-Verlag, 1990.


Correctness of Non-determinism Analyses in a - Parallel-Functional Language..   (Correct)

No context found.

R. J. M. Hughes and J. O'Donnell. Expressing and Reasoning About NonDeterministic Functional Programs. In Functional Programming: Proceedings of the 1989 Glasgow Workshop, pages 308-328. Springer-Verlag, 1990.


A Semantics for Imprecise Exceptions - Jones, Reid, Hoare, Marlow.. (1999)   (23 citations)  (Correct)

No context found.

RJM Hughes and JT O'Donnell. Expressing and reasoning about non-deterministic functional programs. In K. Davis and R. Hughes, editors, Glasgow Functional Programming Workshop, pages 308-328. Springer Workshops in Computing, 1989.

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