| P. Hudak, S. Peyton-Jones, and P. Wadler. Report on the programming language Haskell: a non-strict, purely functional language. SIGPLAN Notices, 1992. |
....hiding communication and synchronization details, thus achieving an higher level programming standard. Expressions enable to construct and to take apart values built from datatype declarations (similar to those provided by functional programming languages such as ML [14] Miranda [23] and Haskell [11]) and include a form of application and of abstraction. Expressions evaluate to names, and can be used wherever a non binding name can. We develop a systematic method of translating expressions into coreT yCO, and, based on the translation and on the type system for core T yCO, we present typing ....
Paul Hudak, Simon Peyton Jones, Philip Wadler, et al. Report on the programming language Haskell: A non-strict, purely functional language. Version 1.2. ACM Sigplan Notices, 27(5), 1992.
....Set. The indexed product B2S [ X ] B is a set, although, in general, not an element of S. Such an indexed product is appropriate for modeling a predicative version of the polymorphic lambda calculus, which models the type systems of programming languages like standard ML [MTH90] and Haskell [HJW92] A predicative form of polymorphism is one where the quanti cation in a type 8X: does not range over all types, but rather over a sub collection that does not contain the type 8X: itself. The predicative polymorphic lambda calculus we consider in this work has two kinds of types: simple types ....
P. Hudak, S. Peyton Jones, and P. Wadler (eds). Report on the programming language Haskell: A non-strict purely functional language (Version 1.2). SIGPLAN Notices, 27(5):Section R, May 1992. 260
....and Joseph H. Fasel. A Gentle Introduction to Haskell , ACM SIGPLAN NOTICES, Vol. 27, No. 5, May 1992 [12] Paul Hudak, Simon Peyton Jones, and Philip Wadler. Report on the Programming Language Haskell: A Non strict, Purely Functional Language , ACM SIGPLAN NOTICES, Vol. 27, No. 5, May 1992 [13]. E. P. Wentworth. Introduction to Functional Programming using RUFL, Department of Computer Science, Rhodes University, Grahamstown, South Africa, August 1990 [23] This is a good tutorial and manual for the Rhodes University Functional Language (RUFL) a Haskell like language developed by ....
....the world of programming language statements into the world of predicate calculus, which is much more orderly. 1. 3 Programming Language Paradigms Reference: The next two subsections are based, in part, on Hudak s article Conception, Evolution, and Application of Functional Programming Languages [13] . Programming languages are often classified according to one of two di#erent paradigms: imperative and declarative. Imperative languages A program in an imperative language has an implicit state (i.e. values of variables, program counters, etc. that is modified (i.e. side e#ected) by ....
P. Hudak, S. Peyton Jones, and P. Wadler. Report on the programming language Haskell: A non-strict, purely functional language. ACM SIGPLAN NOTICES, 27(5), May 1992.
....and Type Declarations for Example in Fig. 1 structions from iq, fetch the register operands, and insert them into rq. The rst rule processes INC instructions, and the second one processes JRZ instructions. Both rules use a form of pattern matching similar to that found in ML [20] and Haskell [16]. The enabling condition of the rst rule is INC r = head(iq) and notin(rq, INC r ) If the rst clause is true, the clause matches and binds the variable r to the register name argument of the INC instruction, to be used later in the rule when re ering to this operand. The second clause, ....
P. Hudak, S. Peyton-Jones, P. Wadler, B. Boutel, J. Fairbairn, J. Fasel, M. Guzman, K. Hammond, J. Hughes, T. Johnsson, D. Kieburtz, R. Nikhil, W. Partain, and J. Peterson. Report on the programming language Haskell: a non-strict, purely functional language (version 1.2). SIGPLAN Notices, 27(5), May 1992.
....can write their programs all in the form of closed functors such as FO0 . On the other hand, in practice, we find it extremely convenient and flexible to write parts of our programs as open formed modules. For languages based on the Damas Milner type discipline [7] such as SML and Haskell [11], there is another reason in favor of writing certain modules in opened forms. One of the most important features of the Damas Milner type discipline is that the most general type for arbitrary expressions can be automatically inferred by compilers. It is, however, nontrivial to infer the most ....
....the SML NJ compiler. In SML NJ (as in all ML compilers to our knowledge) the polymorphic equality function is implemented as a runtime equality interpreter which checks equality of two objects based on their runtime tags. Another way to implement polymorphic equality, which is used in Haskell [11], is to pass an equality function for each formal parameter that is a polymorphic equality type variable. The code produced by this scheme closely depends on the derivation tree of the elaboration phase. In our separate compilation scheme, because the types of 446 some external identifiers are ....
Paul Hudak, Simon Peyton Jones, and Philip Wadler et al. Report on the programming language Haskell a non-strict, purely functional language version 1.2. SIGPLAN Notices, 21(5), May 1992.
....from implementation issues on target architectures. Besides that, they turn programming more modular and improve reuse of code. Many languages have incorporated facilities to define and reuse skeletons[3, 4, 5, 6, 7, 8] Haskell # [9, 10] is a coordination language [11] that extends Haskell[12], a modern functional programming language. It was first designed for high performance parallel distributed programming on clusters of PC s [13] Haskell # was shown expressive enough for the specification of a wider range of concurrent programs [10] One important premise in the design of Haskell ....
P. Hudak, S. P. L. Jones, and P. L. Wadler, "Report on Programming Language Haskell: a Non-Strict, Purely Functional Languages", Special Issue of SIGPLAN Notices, vol. 16, no. 5, May 1992.
....Interfaces are not novel to Java. Similar constructs are known for instance in the context of design patterns (template methods in [9] and have been used in other languages: In the object oriented language Actor [24] the corresponding construct is named protocol. The functional language Haskell [11] features type classes. In contrast to these approaches, however, Java lacks the feature of providing default implementations in interfaces. Another object oriented language with an interface like construct without default implementations is POOL I [1] Here, the construct is called type. Since ....
P. Hudak, S. L. Peyton Jones, and P. Wadler. Report on the Programming Language Haskell --- A Non-strict, Purely Functional Language. ACM SIGPLAN Notices, 27(4), 1992.
....values into a type of computations which yield such values. Many authors have proposed methods for writing such functional interpreters in a modular way. Among them are, Jones and Duponcheel [3] Steele [10] and Liang, Hudak and Jones [8] The interpreter of [10] is written in Haskell (see [5]) a lazy functional programming language which supports type classes. The interpreters of [3] and [8] are written in Gofer (see [4] an Haskell dialect which supports constructor classes, a generalisation of type classes. Modular functional interpreters are build by combining reusable ....
Paul Hudak, Simon Peyton Jones, Philip Wadler. Report on the programming language Haskell: a non-strict, purely functional language, version 1.2. ACM SIGPLAN Notices, Vol. 27(5), May 1992.
....to use a generalpurpose language customized to deal with a specific domain of interest. One advantage of this approach is that, in addition to the basic vocabulary we have built within Frob, we can create new abstractions using a fully featured functional programming language (the Haskell language [4] ) As a result, Frob functions at all levels of abstraction, from simple expressions to patterns that capture system architectures. In the remainder of this paper, we first introduce the basic concepts of Frob with particular emphasis on its ability to abstract over time varying phenomena. We ....
P. Hudak, S. Peyton Jones, and P. Wadler (editors), "Report on the Programming Language Haskell, A Nonstrict Purely Functional Language (Version 1.2)," ACM SIGPLAN Notices, vol. 27, May 1992.
.... (a possibly empty) sequence of objects, so t can denote a sequence t 1 ; t n of terms, x a sequence of variables and A a sequence of atoms (i.e. a query) Haskell Programs Our translation system maps logic programs into lazy functional programs, which are written in (a subset of) Haskell [6]. The subset we use includes the proposed extension of pattern guards . The programs we are going to generate are built as sets of equations, each of the following form: f s1 : s j j guard1;1 , guard1;j = result1 . j guardn;1 , guardn;m = resultn;1 j otherwise = ....
P. Hudak (ed), S. L. Peyton Jones (ed), and P. L. Wadler (ed). Report on the programming language Haskell { a non-strict purely functional language, version
....methods [Whalen et al. 1991] It involves simulating statistical behavior of particles (photons, neutrons, electrons, etc. while they travel through objects of specified shapes and materials. In [Hammes et al. 1995] two simplified functional implementations of MCNP are described, using Haskell[Hudak et al. 1992](MCP Haskell) and Id[Hicks et al. 1993] MCP Id) respectively. In this paper, we have developed a parallel version of MCP Haskell and call it MCP Haskell# Besides its importance, the intrinsic parallel nature of MCNP and the availability of a simplified sequential Haskell implementation ....
Hudak, P., Jones, S. P. L., & Wadler, P. L. (1992). Report on Programming Language Haskell: a Non-Strict, Purely Functional Languages. Special Issue of SIGPLAN Notices, 16(5).
....creates a copy of that shape shrunken in its dimensions by the given percentage (Shrink) 2.1 The Functional Approach In a functional language, recursively defined data are specified using datatype declarations. Such a declaration introduces a new type with one or more variants. In Haskell [16] or SML [20] for example, a programmer could use the data or datatype construct, respectively, to represent the set of shapes, as shown in Fig. 1. Eachvariantintroduces a new tag to distinguish it from the other forms of data. Eachvariant also specifies a record like structure with a fixed ....
Hudak, P., S. Peyton Jones and P.Wadler. Report on the programming language Haskell: a non-strict, purely functional language. ACM SIGPLAN Notices, 27(5), May1992.Version 1.2.
....erreurs de programmarion qui pourtalent avoir des consaquences non dasiraes ou des comportements inattendus lots de l exacution du programme. En particulier, nous nous intaressons k des programmes acrits dans un langage de programma rion fonctionnel (cornroe par exemple Carol [49] ou Haskell [42]) et k la thaorie des types cornroe cadre logique pour spacifier, davelopper et varifier des programmes fonctionnels. Dans ce sens la thaorie des types peut 6tre vue cornroe une varitable logique de la programmation, qui permet d expliquer ces trois activitas. A la base de cette utilisation de la ....
.... This point of view is in agreement with other previous attempts to set a mathematical framework for modeling communicating processes see for example [44, 1, 82, 86, 27] as well as with the way in which interactive programs are implemented in certain functional programming languages like Haskell [42, 37] or Lustre [36] The logical framework in which we will set our work is constructive type theory. Type theories have woke up a growing interest among computer scientists, specially during the last two decades, because of its potential use both as a foundation for Computer Science and as a ....
[Article contains additional citation context not shown here]
P. Hudak et al. Report on the Programming Language Haskell: A non-strict purely Functional Language. ACM Sigplan Notices, 27(5), May 1992.
....semantics from TSG to MP using an interpreter for MP written in TSG. We used the same MP TSG interpreter for all experiments; there were no changes made to the interpreter when used with di#erent semantics modifiers. All semantics modifiers were implemented in Gofer, a dialect of Haskell [30]. To compare the results for TSG and MP, we used the same example program, a naive pattern matcher, for all experiments. All run times in this paper are given in CPU seconds (including garbage collection, if any) using WinGofer 2.30b and a PC Intel Pentium II 266MHz, MS Windows 95. All programs ....
P. Hudak, et al., "Report on the programming language Haskell, a non-strict purely functional language," SIGPLAN Notices 27(5) (1992) R1--R164.
....the base methods and use skeletal implementations of the other methods. 1 In [4] it is argued that typical uses of multiple inheritance can be simulated in Ada95 using other language constructs. 2 Interfaces are similar to what is called type classes in the functional language Haskell [9]. 1 The usefulness of skeletal implementations has also been seen by the Java developers. In the Java 2 API there are several abstract classes which provide skeletal implementations for some of the interfaces. For instance, in the package java.util, the class AbstractCollection is an abstract ....
....Interfaces are not novel to Java. Similar constructs are known for instance in the context of design patterns (template methods in [7] and have been used in other languages: In the object oriented language Actor [22] the corresponding construct is named protocol. The functional language Haskell [9] features type classes. In contrast to these approaches, however, Java lacks the feature of providing default implementations in interfaces. Another object oriented language with an interface like construct without default implementations is POOL I [1] Here, the construct is called type. 3 ....
HUDAK, P., PEYTON JONES, S. L., AND WADLER, P. Report on the Programming Language Haskell --- A Non-strict, Purely Functional Language. ACM SIGPLAN Notices 27, 4 (1992).
....is Body:Statements where Body.Ctx = GlobalEnv; end Prog; Figure 4.26: Example program top level. 4.12 Discussion Existing attribute grammar systems combine functional programming with attribution. The modern style of functional programming as embodied in Standard ML [54] and Haskell [40] makes extensive use of typed terms and pattern matching, and recent attribute grammar systems such as the Synthesizer Generator and FNC 2 [42] have followed suit. ADL is thus quite conventional in this respect, although we have borrowed a few notations from the logic programming tradition. ....
Paul Hudak et al. Report on the programming language Haskell: A non-strict, purely functional language. ACM SIGPLAN Notices, 27(5), May 1992.
....type loc which represents the locations of instructions in the instruction memory, an instruction type ins, and a type irf for instructions whose register operands have been fetched from the register file. The instruction type is a tagged union type, similar to those found in ML [12] and Haskell [10]. Each instruction can be either an INC instruction, which increments the value in its single register argument, or a JRZ instruction, which tests the value in its register argument and, if the value is zero, jumps to the location in its location argument. 1 type reg = int(3) val = int(8) loc = ....
P. Hudak, S. Peyton-Jones, P. Wadler, B. Boutel, J. Fairbairn, J. Fasel, M. Guzman, K. Hammond, J. Hughes, T. Johnsson, D. Kieburtz, R. Nikhil, W. Partain, and J. Peterson. Report on the programming language Haskell: a non-strict, purely functional language (version 1.2). SIGPLAN Notices, 27(5):Ri--Rx, Rl--R163, May 1992.
....procedures are possible [32] hyperstrict lookup is easier to implement and seems conceptually simpler. The out of bounds error value, which we denote by , has algebraic properties similar to the divergent element (see [46] for details) and sometimes we will even identify them (as in Haskell [31]) although they represent quite different behaviours. When they are not identified we will sometimes consider a test is which returns true for . Clearly, the bounds are central to the data field concept. To keep the concept of bounds generic our approach is to view bounds as an abstract data ....
P. Hudak, S. Peyton Jones, P. Wadler, B. Boutel, J. Fairbairn, J. Fasel, M. M. Guzm'an, K. Hammond, J. Hughes, T. Johnsson, D. Kieburtz, R. Nikhil, W. Partain, and J. Peterson. Report on the programming language Haskell: A non-strict, purely functional language. ACM SIGPLAN Notices, 27(5), May 1992.
....techniques for expressing and implementing parallelism in pure functional languages. We confine our attention to methods that maintain referential transparency, so that parallel versions of programs exhibit the same semantics as their sequential versions. The examples use the Haskell language [8]. Section 2 describes techniques for expressing and implementing parallelism. Programs expressed or implemented using these techniques are completely deterministic, just like their sequential counterparts. Section 3 introduces methods for expressing non determinism within functional programs, and ....
Paul Hudak, Simon Peyton Jones, Philip Wadler, "Report on the Programming Language Haskell, A Non-strict, Purely Functional Language, Version 1.2," in ACM SIGPLAN Notices, 27(5), 1992.
....and its functional I O interface (see below) Notably, the ideas in the G machine made lazy functional programming much more e#cient. In the late 1980s very e#cient implementations of two typed lazy functional languages appeared that we will discuss below: Clean, see [40] and Haskell, see [92] [62]. These languages, with their implementations, execute functional programs in a way that is comparable to the speed of contemporary imperative languages such as C. Interactive functional languages. The versions of functional programming that we have considered so far could be called autistic . A ....
P. Hudak et al., Report on the programming language Haskell: A non-strict, purely functional language (Version 1.2), ACM SIGPLAN Notices, vol. 27 (1992), no. 5, pp. Ri--Rx, R1--R163.
....depends on a cell whose value is time varying, such as a reference in the radius cell s formula to the built in cell containing the system clock, the result will be an animated circle. This principle also underlies the animated graphics of Fran [Elliott and Hudak 1997] an add on to Haskell [Hudak et al. 1992]. We will return to a discussion of animations and other time varying values later in this paper. 9 (a) b) c) Figure 2: a) A spreadsheet under development to visualize population data. The formula shown is shared by the 4x1 dynamic matrix labeled graph. The s in the formula are ....
....Because of this difficulty, many other approaches to I O have been developed for applicative languages. Some of these approaches have been imperative side effecting constructs as in SML [Milner et al. 1990] linear logic [Wadler 1990; Achten and Plasmeijer 1995] continuations [Perry 1989; Hudak et al. 1992] and monads [Peyton Jones and Wadler 1993; Launchbury and Peyton Jones 1994; Wadler 1997] Monads in combination with concurrency can be used to extend monadic I O sequencing to the concurrent needs of GUIs, as has been shown by Haggis [Finne and Peyton Jones 1996] a framework for writing GUIs ....
P. Hudak, S. Peyton Jones, and P. Wadler (eds), "Report on the Programming Language Haskell, a Non-Strict Purely-Functional Programming Language," Version 1.2, ACM Sigplan Notices 27(5), May 1992, Ri-Rx, R1-R163.
....functions from type # to type # . Data type declarations. Type checking is decidable, using the Hindley Milner algorithm [Milner 1978] The algorithm even infers the types of variables occurring in expressions. This kind of type system is used in the functional programming languages Haskell [Hudak et al. 1992] and ML [Paulson 1996] since one may write code that is not only polymorphic, but almost entirely free of type declarations. It works well in logic too. Sets of elements of type # are represented as predicates over type # . We define Set(#) to be # # Bool and make the following polymorphic ....
Hudak, P., Jones, S. P., and Wadler, P. 1992. Report on the programming language Haskell: A non-strict, purely functional language. SIGPLAN Notices 27, 5 (May). Version 1.2.
..... 7 2.2.5 Lifting and Functors . 8 2.3 Syntactic classes . 9 2.4 Defining natural numbers in FOL . 10 i CONTENTS ii Chapter 1 Introduction A Haskell style type system [1] with ordered type classes has been present in Isabelle since 1991 already [2] Initially, classes have mainly served as a purely syntactic tool to formulate polymorphic object logics in a clean way, such as the standard Isabelle formulation of many sorted FOL [5] Applying classes at the logical ....
....is very important to see that above defs are not directly connected with instance at all We were just following our convention to specify # on bool after having instantiated bool : product. Isabelle does not require these definitions, which is in contrast to programming languages like Haskell [1]. While Isabelle type classes and those of Haskell are almost the same as far as type checking and type inference are concerned, there are important semantic di#erences. Haskell classes require their instances to provide operations of certain names. Therefore, its instance has a where part that ....
Paul Hudak, Simon Peyton Jones, and Philip Wadler. Report on the programming language Haskell: A non-strict, purely functional language. SIGPLAN Notices, 27(5), May 1992. Version 1.2.
....reference model is also called the ECMA Toaster Model , with the integration services in the role of the toaster. In this integration framework SDE s are constructed by encapsulating existing development tools such as editors, model checkers and proof tools. The pure functional language Haskell [9,24], extended with a higher order approach to concurrency [11] is used as a central integration language, i.e. as GlueWare 1 in this context. Each tool is encapsulated by wrapping Haskell interfaces around it using the integration manager. Section 5 will give an example of this process. In the ....
P. Hudak, S. L. Peyton Jones, and P. Wadler. Report on the Programming Language Haskell - a non strict purely functional language, version 1.2. ACM SIGPLAN notices, 27(5):1--162, 1992.
....is to demonstrate that, given the right infrastructure (HOLCF ) this step need not be painful. HOLCF [Reg94, Reg95, MNOS98] is a conservative extension of HOL with the notions of domain theory [Pau87] employing Isabelle s axiomatic type classes [Wen97] which extend Haskell s type classes [HPJW92] with axioms. In particular, HOLCF provides ffl a class cpo of types which come equipped with a complete partial order v. ffl a subclass pcpo (pointed cpo) of cpos that also have a least element . ffl a space of continuous functions between cpos, together with its own abstraction , infix ....
Paul Hudak, Simon Peyton Jones, and Philip Wadler. Report on the programming language Haskell: A non-strict, purely functional language. ACM SIGPLAN Notices, 27(5), May 1992. Version 1.2.
....code, they are removed by the void erasure. In addition static tuples are left in the code, these are handled by the projection unfolding. A pretty printer [Hug95] is finally applied to make the representation into text again. 2. 2 Grammar The language chosen for our partial evaluator is Haskell [Hud92], although not the entire language. The target (residual) language is a true subset of Haskell. This subset is extended to form the source language. The extensions are the following. As a binding time analysis is not provided, the user must annotate the binding times. Therefore annotations are ....
Paul Hudak et al. Report on the Programming Language Haskell: A NonStrict, Purely Functional Language, March 1992. Version 1.2. Also in Sigplan Notices, May 1992.
....and type schemes, substitutions, and the thorny issue of new variables. Only a few key proofs are discussed in detail. The theories and proofs are developed in Isabelle HOL, the HOL instantiation of the generic theorem prover Isabelle. 1 Introduction Most functional programming languages [17, 12, 2] have a common core: the simply typed calculus enriched with let expressions, i.e. local definitions of polymorphic values. This language is called Mini ML [3] The set of well typed Mini ML expressions is inductively defined by a set of inference rules. One of the key properties of Mini ML is ....
....the right) is overloaded and applies to natural numbers and to sets (where it stands for ) Types follow the syntax for ML types, except that the function arrow is ) rather than . A term t is constrained to be of type by writing t : Isabelle also provides Haskell like type classes [12], the details of which are 3 explained as we go along. A type variable ff is restricted to be of class c by writing ff : c. list is the type of lists over type , where [ is the empty list and x#xs is the list with head x and tail xs. Isabelle theories are hierarchically structured ....
[Article contains additional citation context not shown here]
P. Hudak, S. Peyton Jones, and P. Wadler. Report on the programming language Haskell: A non-strict, purely functional language. ACM SIGPLAN Notices, 27(5), May 1992. Version 1.2.
.... low level programming language for traffic light device drivers; HOL Z, the encoding of the specification language Z (Spivey 1992) into Isabelle (Kolyang et al. 1996) HOL CSP, the encoding of the process calculus CSP (Roscoe 1998) into Isabelle (Tej and Wolff 1997) and Haskell (Hudak et al. 1992), the functional programming language. Folders are the basic mechanism for hierarchically structuring the Workbench s contents. The user may interact with the persistent objects of the Workbench either via drag drop, or via menus. Each view has its specific menu which is located in the Edit entry ....
....and the integration framework) and presentation integration (tool appearance and user interaction, i.e. look andfeel) Using the Workbench, SDE s are constructed by encapsulating existing development tools such as editors, model checkers and proof tools. The pure functional language Haskell (Hudak et al. 1992), Peyton Jones et al. 1996) extended with a higher order approach to concurrency (Karlsen 1997b) is used as GlueWare, i.e. as a central integration language. The integration of a tool such as Isabelle into this framework proceeds in three stages. First, the persistent objects types and their ....
Hudak, P., Peyton Jones, S. L., and Wadler, P. (1992). Report on the Programming Language Haskell - a non strict purely functional language, version 1.2. ACM SIGPLAN notices, 27(5):1--162.
.... narrowing step (see, e.g. 9] On ground terms, needed narrowing falls back to the classical notion of needed reduction in the sense of Huet and L evy [13] Evaluation by needed narrowing has also some similarities to pattern matching and lazy evaluation in functional languages like Haskell [12] or Miranda [29] Note, however, that needed narrowing or needed reduction is a more powerful evaluation strategy than the simpler left to right pattern matching in current functional languages. For instance, consider the rules f(0; 0) 0 f(X; s(N) 0 and a non terminating function . Since ....
Paul Hudak, Simon Peyton Jones, and Philip Wadler. Report on the programming language Haskell: A non-strict, purely functional language. ACM SIGPLAN Notices, 27(5), May 1992. Version 1.2.
....References 27 machine, and Trafola [2] which was implemented by means of an abstract machine called Trama. More recently, several lazy higher order functional languages have been implemented, notably: Miranda [46] using the S K reduction machine, Lazy ML [3] by means of the G machine, and Haskell [23]. Hartel, Feeley et al. 20] compare the efficiency of several functional programming languages, including a prototype of Epic. The comparison of interpreted and noninterpreted languages, which are compiled into an abstract or a concrete machine, respectively, leads to the conclusion that ....
P. Hudak, S.L. Peyton Jones, and P.L. Wadler, editors. Report on the programming language Haskell -- a non-strict purely functional language, version 1.2. ACM SIGPLAN Notices, 27(5):R1--R164, 1992.
....a public domain solution to the problem by offering a tool integration framework in support of data, control and presentation. It has been designed according to international standards and employs existing public domain tools to support the integration process. The lazy functional language Haskell [15], extended with a model to concurrency inspired by process algebras, takes the role of the central integration language offering features very close to the ones employed when formulating constructive formal specifications. The remainder of this paper is organized as follows. The architecture of ....
....Manager. The UniForM Workbench has been designed according to a number of basic principles and ideas [19] Entire SDE s are constructed in the integration framework by encapsulating existing development tools such as editors, model checkers and proof tools. The workbench uses Concurrent Haskell [15, 40] as an integration language, i.e. as glueware in integrating the tools. Haskell interfaces are wrapped around existing tools using the Integration Manager first. The missing bits and pieces required to provide full integration with the rest of an SDE, are then expressed at a very high level of ....
[Article contains additional citation context not shown here]
P. Hudak, S. L. Peyton Jones, and P. Wadler. Report on the Programming Language Haskell - a non strict purely functional language, version 1.2. ACM SIGPLAN notices, 27(5):1--162, 1992.
....that the usual notation for (definite) integration can be used and how the cut paste techniques can be applied. y There is not an arbitrary overloading of operators in the internal type system but only one which can be obtained by the mechanisms of AXIOM categories or Haskell type classes (Hudak et al. 1992). We refer to (Weber, 1993; Weber, 1994; Weber, 1995a) for more details. J. Hartmann, G. Hotz, R. Loos, R. Marzinkewitsch, J. Quapp, F. Weigel, and A. Weber Figure 1. Handprinted input Figure 2. Input after pattern recognition Below we will show how the system can be used for another ....
Hudak, P., Peyton Jones, S., Wadler, P., et al. (1992). Report on the programming language Haskell --- a non-strict, purely functional language, version 1.2. ACM SIGPLAN Notices, 27(5).
....update. ffl not fully substitutive ffl computations may not reach normal form pure applicative, eg Hope [8] easy to ffl predict time and space usage ffl optimise ffl debug no sequencing ffl not fully substitutive ffl computations may not reach normal form pure normal order, Haskell [22] Lazy evaluation [15, 19] and there is ffl no sequencing ffl full substitutivity ffl increased modularity [25, 37] problems with aggregate data structures seem to have recently been overcome [31] hard to ffl predict time and space usage ffl optimise ffl debug 76 4.2 Developing Efficient Lazy ....
....data structures. ffl It has to be declared all at once and the space that it occupies cannot be garbage collected while there are pointers to it. ffl The function array takes as one of its arguments a list of associations, Assoc a b] of the form index : value. According to the Haskell report [22] array is non strict 2 The Glasgow Haskell compiler, ghc 0.19, has O(1) space and at least O(n) time updates [36] 81 0 2 4 6 8 10 12 14 16 18 20 0 50 100 150 200 250 300 Vertices Time usage Planar Graphs 0 500000 1e 06 1.5e 06 2e 06 2.5e 06 3e 06 0 50 100 150 200 250 300 Vertices Maximum ....
[Article contains additional citation context not shown here]
P. Hudak, S. Peyton Jones, P. Walder, B. Boutel, J. Fairbairn, J. Fasel, M.M. Guzman, K. Hammond, J. Hughes, T. Johnsson, D. Kieburtz, R. Nikhil, W. Partain, and J. Peterson. Report on the programming language haskell: a non-strict, purely functional language (version 1.2). SIGPLAN Notices, 27(5):Ri--Rx, Rl--R163, May 1992.
....parts of the program, and to apply them as needed. The actual functional programming environment discussed in this paper is the Gofer interpreter [14, 15] Gofer accepts a language that is syntactically and semantically similar to the lazilyevaluated functional programming language Haskell [11, 12]. In a lazy evaluation scheme, the evaluation of an expression is deferred until the value of the expression is actually needed elsewhere in the computation. In particular, an argument of a function (which may be an arbitrary expression) is not evaluated until the first time the corresponding ....
P. Hudak, S. Peyton Jones, and P. Wadler. Report on the programming language Haskell: A non-strict, purely functional language. ACM SIGPLAN NOTICES, 27(5), May 1992.
....to consist in the formal presentation of the extension of type theory and its application to programming examples. In section 2 we start by recalling some benefits of the use of infinite objects in the presence of laziness. To this end we present a number of small examples programmed in Haskell [Hud92], a typed lazy functional language. We then make the case for type theory as a programming language by commenting on the features of the type structure that allow for the construction of correct programs. Finally we comment on how to add infinite objects to type theory, giving rise to a ....
Paul Hudak et al. Report on the Programming Language Haskell: A Non-Strict, Purely Functional Language, March 1992. Version 1.2. Also in Sigplan Notices, May 1992.
....erreurs de programmation qui pourraient avoir des cons equences non d esir ees ou des comportements inattendus lors de l ex ecution du programme. En particulier, nous nous int eressons a des programmes ecrits dans un langage de programmation fonctionnel (comme par exemple Caml [49] ou Haskell [42]) et a la th eorie des types comme cadre logique pour sp ecifier, d evelopper et v erifier des programmes fonctionnels. Dans ce sens la th eorie des types peut etre vue comme une v eritable logique de la programmation, qui permet d expliquer ces trois activit es. A la base de cette utilisation ....
.... point of view is in agreement with other previous attempts to set a mathematical framework for modeling communicating processes see for example [44, 1, 82, 86, 27] as well as with the way in which interactive programs are implemented in certain functional programming languages like Haskell [42, 37] or Lustre [36] The logical framework in which we will set our work is constructive type theory. Type theories have woke up a growing interest among computer scientists, specially during the last two decades, because of its potential use both as a foundation for Computer Science and as a ....
[Article contains additional citation context not shown here]
P. Hudak et al. Report on the Programming Language Haskell: A non-strict purely Functional Language. ACM Sigplan Notices, 27(5), May 1992.
....activities of tasks defined in an imperative language, such as Fortran or C. SCL consists of a 3 collection of skeletons that abstract parallel behaviour such as data distribution and data parallel operations. The skeletons in SCL are defined in a functional language which resembles Haskell [8]. Since the parallel behaviour of a skeleton is known a priori the skeleton can be implemented by pre defined libraries or code templates in the desired imperative language together with standard message passing libraries providing both efficiency and program portability. An advantage of the ....
P. Hudak, S. L. Peyton Jones, and P. Wadler. Report on the programming language Haskell --- a non-strict purely functional language, version 1.2. SIGPLAN Notices, 27(5):1--162, 1992.
..... 7 2.2.5 Lifting and Functors . 8 2.3 Syntactic classes . 9 2.4 Defining natural numbers in FOL . 10 i CONTENTS ii Chapter 1 Introduction A Haskell style type system [1] with ordered type classes has been present in Isabelle since 1991 already [2] Initially, classes have mainly served as a purely syntactic tool to formulate polymorphic object logics in a clean way, such as the standard Isabelle formulation of many sorted FOL [5] Applying classes at the logical ....
....is very important to see that above defs are not directly connected with instance at all We were just following our convention to specify on bool after having instantiated bool : product . Isabelle does not require these definitions, which is in contrast to programming languages like Haskell [1]. While Isabelle type classes and those of Haskell are almost the same as far as type checking and type inference are concerned, there are important semantic di#erences. Haskell classes require their instances to provide operations of certain names. Therefore, its instance has a where part that ....
Paul Hudak, Simon Peyton Jones, and Philip Wadler. Report on the programming language Haskell: A non-strict, purely functional language. SIGPLAN Notices, 27(5), May 1992. Version 1.2.
....the type system of AXIOM [5] in which only non parameterized categories 3 are considered and the properties correspond to the non parameterized categories. The sorts of the order sorted signature are the constraints on the types and correspond to AXIOM categories [5] and Haskell type classes [4]. They were also called properties [3, 13] We use several of these names depending on the context, avoiding the term category for type classes since categories in AXIOM differ substantially from categories in category theory. As in [13] we assume that we have a semantics for the ground types ....
P. Hudak, S. Peyton Jones, P. Wadler, et al. Report on the programming language Haskell --- a non-strict, purely functional language, version 1.2. ACM SIGPLAN Notices, 27(5), May 1992.
....into C can be coerced into a function from A into C. Thus an implicit coercion from FS#B;C# into FS#A; C# can be defined, i.e. FS#B;C# , FS#A; C#. If 5 Using parameterized categories in the terminology of AXIOM which correspond to parameterized type classes in the terminology of HASKELL [11] it is possible to define sequences formally, see e.g. 6] 101 C , D by an implicit coercion #,then# # f is a function from A into D,i.e.an implicit coercion from FS#A; C# into FS#A; D# can be defined. In this case assumption 3 is satisfied because of the associativity of ....
P. Hudak, S. Peyton Jones, P. Wadler, et al. Report on the programming language Haskell --- a non-strict, purely functional language, version 1.2. ACM SIGPLAN Notices, 27(5), May 1992.
No context found.
P. Hudak, S. Peyton-Jones, and P. Wadler. Report on the programming language Haskell: a non-strict, purely functional language. SIGPLAN Notices, 1992.
No context found.
P. Hudak, SL. Peyton Jones, P. Wadler, and et al. Report on the Programming Language Haskell --- A Non-strict, Purely Functional Language. Technical Report 1.2, March 1992.
No context found.
P. Hudak, S. L. Peyton Jones, and P. L. Wadler (eds.). Report on the programming language Haskell { a non-strict purely functional language, version 1.2. ACM SIGPLAN Notices, 27(5):R1{ R162, May 1992.
No context found.
HUDAK, P., PEYTON JONES, S. L., AND WADLER, P. Report on the Programming Language Haskell --- A Non-strict, Purely Functional Language. ACM SIGPLAN Notices 27, 4 (1992).
No context found.
P. Hudak, S. Peyton Jones, P. Wadler, et al. Report on the programming language Haskell -- a non-strict, purely functional language (version 1.2). ACM SIGPLAN Notices, 27(5), May 1992. (p. 2)
No context found.
P. Hudak, S. Peyton Jones, and P.Wadler. Report on the programming language Haskell: A non-strict, purely functional language. ACM SIGPLAN Notices, 27(5), May 1992. Version 1.2.
No context found.
P. Hudak, S. L. Peyton Jones and P. Wadler (eds), `Report on the programming language Haskell, a non-strict purely functional language (Version 1.2)', SIGPLAN Notices (May 1992).
No context found.
P. Hudak, S. L. Peyton Jones and P. L. Wadler (eds), `Report on the programming language, Haskell--- a non-strict purely functional language, version 1.2', SIGPLAN Notices, 27,(5), 1--162 (1992).
No context found.
Paul Hudak (ed.), Simon Peyton Jones (ed.), Philip Wadler (ed.), Brian Boutel, Jon Fairbairn, Joseph Fasel, Mar a M. Guzm an, Kevin Hammond, John Hughes, Thomas Johnsson, Dick Kieburtz, Rishiyur Nikhil, Will Partain and John Peterson, `Report on the programming language Haskell: A non-strict, purely functional language, version 1.2', ACM SIGPLAN Notices, 27, (5), Section R (1992).
No context found.
P. Hudak et al., "Report on the Programming Language Haskell, A Non-Strict, Purely Functional Language, Version 1.2," ACM SIGPLAN Notices, vol. 27, no. 5, May 1992.
First 50 documents Next 50
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