| M. P. Jones, A. Reid, the Yale Haskell Group, the OGI School of Science, and Engineering at OHSU. The Hugs 98 User Manual, 1994--2002. http://cvs.haskell.org/Hugs/. |
....original but in approximately half the number of steps. This might suggest that the execution time of app2s (for sufficiently large inputs) should be about one half the execution time of app. However, executions of function app2s in several environments (e.g. in the lazy functional language Hugs [13] and the functional logic language Curry [12] show that speedup is hardly measurable, i.e. between 1 and 2 . In order to reason about these counterintuitive results, we introduce several formal criteria to measure the efficiency of a computation. We consider inductively sequential rewrite ....
M.P. Jones and A. Reid. The Hugs 98 User Manual. Available at http://haskell.cs.yale.edu/hugs/, 1998.
....conjecture about tail recursion. His compiler does not preserve tail recursion for any crossmodule procedure call not just those with contracts. Still, he has not found this to be a problem in practice [29, section 3.4. 1] 9 Conclusion Higher order, typed programming language implementations [1, 12, 15, 19, 33] have a static type discipline that prevents certain abuses of the language s primitive operations. For example, programs that might apply non functions, add non numbers, or invoke methods of non objects are all statically rejected. Yet these languages go further. Their run time systems ....
Jones, M. P., A. Reid and The Yale Haskell Group. The Hugs 98 User Manual, 1999.
....Similarly, if e decomposes into a context and a method return, Elab(P ) must also have returned and the wrapper method s code must have been invoked, so this step is also locally contract sound. 2 Contracts for Higher Order Functions Higher order, typed programming language implementations [2, 20, 23, 33, 51] have a static type discipline that prevents certain abuses of the language s primitive operations. For example, programs that might apply non functions, add non numbers, or invoke methods of non objects are all statically rejected. Yet these languages go further. Their run time systems ....
Jones, M. P., A. Reid and The Yale Haskell Group. The Hugs 98 User Manual, 1999.
....a component that can use different compilers as evaluation engines , and the extended array library that combines array language functionality with higher order programming techniques in a spreadsheet setting. On the Haskell side, Haxcel is related to interactive Haskell interfaces such as Hugs [14], GHCi [22, Ch. 3] and in particular hi [24] In comparison with these, Haxcel provides a less text oriented interface that can help visualize results of program changes faster. The array oriented programming style supported by Xarray is found in array and data parallel languages such as ....
M. P. Jones and J. C. Peterson. Hugs 98 user manual, Sept. 1999. http://www.haskell.org/Hugs/downloads/hugs.pdf.
....(a: x ) A disadvantage of the use of a datatype as the representation type is the undesirable wrapping and unwrapping of data constructors, required in the definition of functions on the abstract type, as shown by the definition of function union above. A similar construct, adopted in Hugs [JP97] avoids this problem. The above example can be rewritten in Hugs in the following way: type Set = a] in : union union [ s = s union (a:x) s j a elem s = union x s j otherwise = a: union x s) In Hugs, the fact that the abstract type and the representation type are synonymous, in ....
M. P. Jones and J. C. Peterson. The Hugs User Manual. http://www.haskell/systemsz.cs.yale.edu/hugs/docs, 1997.
....tries to find a single monomorphic type for f. Because the program requires the type of f to be instantiated to both Int Int and (Int Int Int) Int Int Int) it will be rejected. Admittedly, a slightly modified version of the above program can be typed by a recent extension [11][9] of Hugs which allows rank 2 types. But also this extension does not provide everything we need: there are still meaningful programs that cannot be typed. A real world example of the limitations of the Haskell type system (with or without extensions) is the mapping of polytypic functions to ....
Mark P Jones and Alastair Reid. The Hugs 98 user manual, http://www.haskell.org/hugs.
....subterms that are needed, in a precise technical sense, to obtain a result. Needed Narrowing. Needed narrowing is an optimal evaluation strategy w.r.t. both the length of derivations and the independence of computed solutions [10] It extends the Huet and L evy notion of a needed rewrite step [18] to functional logic programming. Following [10] a narrowing step t ; p;R; t 0 is called needed i , for every substitution such that , p is the position of a needed redex of (t) in the sense of [18] A narrowing derivation is called needed i every step of the derivation is needed. ....
....computed solutions [10] It extends the Huet and L evy notion of a needed rewrite step [18] to functional logic programming. Following [10] a narrowing step t ; p;R; t 0 is called needed i , for every substitution such that , p is the position of a needed redex of (t) in the sense of [18]. A narrowing derivation is called needed i every step of the derivation is needed. An ecient implementation of needed narrowing exists for inductively sequential programs. The formal de nition of inductive sequentiality is rather technical. In this paper, for the sake of completeness, we give ....
M.P. Jones and A. Reid. The Hugs 98 User Manual. Available at http://haskell.cs.yale.edu/hugs/, 1998.
....one but in approximately half the number of steps. This might suggest that the execution time of app2s (for sufficiently large inputs) should be about one half the execution time of app. However, executions of function app2s in several environments (e.g. in the lazy functional language Hugs [19] and the functional logic language Curry [17] show that speedup is only around 10 . In order to reason about these counterintuitive results, we introduce several formal criteria to measure the efficiency of a functional logic computation. We consider inductively sequential rewrite systems as ....
M.P. Jones and A. Reid. The Hugs 98 User Manual. Available at http://haskell.cs.yale.edu/hugs/, 1998.
....the original but in approximately half the number of steps. This might suggest that the execution time of app2s (for suciently large inputs) should be about one half the execution time of app. However, executions of function app2s in several environments (e.g. in the lazy functional language Hugs [13] and the functional logic language Curry [12] show that speedup is hardly measurable, i.e. between 1 and 2 . In order to reason about these counterintuitive results, we introduce several formal criteria to measure the eciency of a computation. We consider inductively sequential rewrite systems ....
M.P. Jones and A. Reid. The Hugs 98 User Manual. Available at http://haskell.cs.yale.edu/hugs/, 1998.
....in approximately half the number of steps. In principle, this might suggest that the execution time of app2s (for sufficiently large inputs) should be about one half the execution time of app. However, executions of function app2s in several environments (e.g. in the lazy functional language Hugs [22] and the lazy functional logic language Curry [20] show that speedup is hardly measurable, i.e. between 1 and 2 over several tries. To reason about these counterintuitive results, we introduce several formal criteria to measure the efficiency of a computation. Our criteria are independent of ....
....should be about one half. However, executions of operation app2s in a certain environment for various inputs show almost no gain over those of operation app in the same environment for the same inputs. The environments where we benchmarked the two operations are the lazy functional language Hugs [22] and the lazy functional logic language Curry [20] Since the languages are lazy, we must ensure that the expressions we use to measure the differences between operations app and app2s are fully evaluated. Printing the result of an evaluation would do it, but also would introduce a large overhead. ....
M.P. Jones and A. Reid. The Hugs 98 User Manual. Available at http://haskell.cs.yale.edu/hugs/, 1998.
....this by extending the Hugs interpreter to include implicit parameters. As suggested in Section 3.3, the implementation leverages o of the existing type class mechanism, with implicit parameters as a new kind of type predicate. The resulting system is available in the distribution of Hugs 98 [8]. The chief advantage of having a real implementation is the development of real examples. These enabled us to explore whether the system we were exploring was merely a curiosity, or one which has real practical potential. The rest of this section contains a variety of illustrative examples. 4.1 ....
Jones, M. P., and Peterson, J. C. Hugs 98 user manual. http://www.haskell.org/hugs/, May 1999.
....inferred from their use. We present implicit parameters using a small Hindley Milner calculus. We give a type system, a type inference algorithm, and several semantics. In addition, we have also built an experimental extension to the Hugs 98 Haskell interpreter that implements implicit parameters [3]. We use this to present several examples. 1 A Scenario: Pretty Printing You have just nished writing the perfect pretty printer. It takes as input a document to be layed out, and produces a string. pretty : Doc String You ve done the hard part your code is lovely, concise and modular, and ....
....demonstrated this by extending the Hugs interpreter to include implicit parameters. The implementation takes advantage of the existing type class mechanism, with implicit parameters simply becoming special kinds of type predicates. The resulting system is available in the distribution of Hugs 98 [3]. The chief advantage of having a real implementation is the development of real examples. These enabled us to explore whether the system we were exploring was merely a curiosity, or one which has real practical potential. 4.1 Auxiliary parameters in recursive de nitions In recursive function de ....
Jones, M. P., and Peterson, J. C. Hugs 98 user manual, May 1999. http://www.haskell.org/hugs/.
....to the second question posed at the beginning of this chapter: How large is the set of WM predicates , several example predicates taken from [57] and their translations are displayed. 4.5. 1 Implementation notes The translator is implemented using Hugs 1:3 (The Haskell User s Gofer System) [32]. The size of the translator is about 2k lines (including comments) The translator works in the following order: 1 read in a set of WM clauses, 2 classify the clauses into a set of predicate definitions, 3 further partition the defining clauses into clause groups, 4 convert the clauses into ....
M. P. Jones. The Hugs user manual. ftp://ftp.cs.nott.ac.uk/pub/haskell/hugs/hugs13, 1996.
....future work. However, the example does show that there are further opportunities to exploit dependency information that go beyond the ideas described in Section 6. 8 Conclusions and Future Work The ideas described in this paper have been implemented in the latest version of the Hugs interpreter [7], and seem to work well in practice. Pleasingly, some early users have already found new applications for this extension in their own work, allowing them to overcome problems that they had previously been unable to fix. Others have provided feedback that enabled us to discover places where further ....
M. P. Jones and J. C. Peterson. Hugs 98 User Manual, September 1999.
No context found.
M. P. Jones, A. Reid, the Yale Haskell Group, the OGI School of Science, and Engineering at OHSU. The Hugs 98 User Manual, 1994--2002. http://cvs.haskell.org/Hugs/.
No context found.
Mark P Jones, Alastair Reid, the Yale Haskell Group, the OGI School of Science, and Engineering at OHSU. The Hugs 98 User Manual, 1994--2002. http://cvs.haskell.org/Hugs/.
No context found.
Mark P Jones, Alastair Reid, the Yale Haskell Group, the OGI School of Science, and Engineering at OHSU. The Hugs 98 User Manual, 1994--2002. http://cvs.haskell.org/Hugs/.
No context found.
Mark P Jones, Alastair Reid, the Yale Haskell Group, the OGI School of Science, and Engineering at OHSU. The Hugs 98 User Manual, 1994--2002. http://cvs.haskell.org/Hugs/.
No context found.
M. P. Jones. The hugs 98 user manual, 200.
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