30 citations found. Retrieving documents...
MILNER, R. The Standard ML core language. Polymorphism 2, 2 (

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

On The Type Structure of Standard ML - Robert Harper Carnegie-Mellon (1993)   (29 citations)  (Correct)

.... [48] to refine the calculus presented here in a manner that clearly identifies the compiletime run time distinction in Standard ML [21] Standard ML is an updated version of the programming metalanguage of the LCF system [17] comprising a core expression language with polymorphic functions [38] and a module language for defining interdependent program units [28] The core language is designed around an automatic type inference algorithm that performs compile time checking of untyped expressions. The module language is designed to support the organization of programs into ....

MILNER, R. The Standard ML core language. Polymorphism 2, 2 (


Generic Properties of Datatypes - Backhouse, Hoogendijk (2002)   (Correct)

....only their declarations are di erent. The justi cation given, at the time Pascal was designed, was that the increased redundancy facilitated type checking, thus assisting with the early detection of programming errors. In typed functional programming languages, beginning with ML [Mil77, Mil85] only one so called polymorphic function is needed. Formally, the length function is a function with type IN List: for all instances of the type parameter . That is, whatever the type A , there is an instance of the function length that maps a list of A s to a natural number. A ....

R. Milner. The standard ML core language. Polymorphism, II(2), October 1985.


Ml With Extended Pattern Matching And Subtypes - Jategaonkar (1989)   (53 citations)  (Correct)

....Moreover, the inferred types are most general types, from which all valid types can be easily derived. Languages with type inference thus provide greater flexibility and expressive power than traditional strongly typed languages, while maintaining the same guarantees on run time behavior. ML [Mi185] a functional language that is based on the simply typed lambda calculus, is the paradigmatic language with type inference. Combining strong typing and object oriented programming clearly has many advantages, and in the past few years, there has been much research on extending strongly typed ....

R. Milner. The standard ml core language. Polymorphism, 2(2), 1985. 28 pages. An earlier version appeared in Proc. 1984 ACM Symp. on Lisp and Functional Programming. 61


Space Usage in Functional Query Languages - Abiteboul, Hillebrand (1995)   (8 citations)  (Correct)

....= 3. 1 The Simply Typed Lambda Calculus: TLC and TLC = The simply typed calculus [Chu41] TLC for short) is a very basic functional framework built around the concepts of abstraction and function application, and it forms the backbone of most modern functional programming languages (e.g. ML [G78, Mil85], Miranda [Tur85] and Haskell [HW88] Let us briefly review its definition (cf. Bar84, HS86] The syntax of TLC types is given by the grammar T j t j (T T ) where t ranges over a set of type variables. Thus, ff is a type, as are (ff fi) and (ff (ff ff) As usual, the type ff fi ....

R. Milner. The Standard ML Core Language. Polymorphism, 2(2),


Functional Database Query Languages as Typed Lambda Calculi.. - Hillebrand, al. (1994)   (5 citations)  (Correct)

....algebras. We use the Curry view of TLC without type annotations and infer monomorphic or simple types. We also use TLC = the typed calculus with atomic constants and an equality on them, and the associated delta reduction of [15] By adding let polymorphism to TLC, Milner s ML lan1 guage [34, 35] combines the convenience of type inference and the flexibility of polymorphism. So we also consider ML typings. We refer to Section 2 for the necessary background in TLC (Section 2.1) ML (Section 2.2, and list iteration (Section 2.3) The expressive power of TLC was originally analyzed in terms ....

R. Milner. The Standard ML Core Language. Polymorphism, 2 (1985), 28 pp.


Parametric Polymorphism in Java: an Efficient Implementation for.. - Viroli   (Correct)

....example of use is the implementation of collection data types, whose behaviour and features are independent from the type of the elements of the collection. Typical implementations of parametric polymorphism are Ada generics [1] C templates [6] and ML polymorphic functions or data types [8, 5]. In its former versions, Java has not provided parametric polymorphism, mainly in order to keep the language as simple as possible. Genericity is partially supported through the super type Object from which each class extends. In fact, dealing with a common bound for all the types makes it ....

R. Milner. The Standard ML core language. In Symposium on Lisp and Functional Programmin. ACM, 1984.


Dynamic Inheritance In A Statically Typed Language - Ernst (1999)   (Correct)

....traditional single inheritance (of Beta and other object oriented languages) as a special case. The merge rule applies to nite sequences of distinct elements in general, and it can be characterized in several di erent but equivalent ways. First, in Fig. 7, we give an algorithm for it by an SML [26, 32, 31] function merge which merges two lists into one, using the auxiliary function member to determine presence absence of a value in a list. The algorithm works by choosing the frontmost element from one or both lists, removing it, and recursively merging the rest of the two lists. If the frontmost ....

Milner, R. 1985. The Standard ML Core Language (Revised).. Dept.- Computer-Science, University-of-Edinburgh.


Type Checking in System . . . - Raffalli   (Correct)

....notion of sub typing which includes all the handling of quanti cation rules. 1 Introduction. Motivation. Type systems have proved to be useful for many modern functional programming languages such as ML, Miranda, Haskell, In most cases, the basis of the type system is Milner s algorithm [12]. The main characteristic of these type systems is polymorphism which allows the programmer to write generic functions that can work on arguments of di erent types. However it is often insucient: polymorphic recursion, existential types or the state monad of Haskell are treated using speci c ....

....of some sub terms) This is quite di erent from writing a term in Church s style to show that it is typeable in system F. It never backtracks. Therefore understandable error messages can be generated to help localizing the problem. It stays simple and it is an extension of Milner s algorithm [12]. Milner s algorithm is a special case of our algorithm when it is applied to quanti er free terms. The sub typing algorithm is then simpli ed into a uni cation algorithm (see lemma 4.16 and theorem 4.21) This implies that any language using Milner s algorithm can be extended to use our algorithm ....

R. Milner. The standard ML core language. Polymorphism, 1985.


Hardware Description with Recursion Equations - O'Donnell (1987)   (4 citations)  (Correct)

....correct equational behavior inside lexical blocks, as well as providing streams as a special type of list. However, it is possible to implement HDRE without lazy evaluation. Many programming languages provide the necessary features, or their equivalents, including Common Lisp [33] Scheme [29] ML [23], SASL [34] Lucid [35] etc. I have implemented HDRE in Daisy [18, 19] which is ideal because of its suspended list constructor. One of the advantages of HDRE is its ability to run in many existing languages. HDRE is based on previous work by Gordon [8] and Johnson [14, 15, 16, 17] A related ....

....streams. The trivial transpose function converts between these data formats, while lines inserts line breaks between the lists. The character makes the rest of an input line into a comment. Executing SRtestdata = 3 11 21] SHR Shift right [OPCODE LI RI] 3 12 22] SHR Shift right [3 13 23] SHR Shift right [3 14 24] SHR Shift right [2 15 25] SHL Shift left [1 16 26] NOP Stay with previous value draft 87hdre.tex 8 July 19, 1994 at 12:12 [0 17 27] CLR Clear [2 18 28] SHL Shift left [1 19 29] STA Stay with previous value ] Shift Register ....

Milner, Robin, "The Standard ML Core Language", Report CSR-168-84, Department of Computer Science, University of Edinburgh, 1984.


Toward formal development of ML programs: foundations and.. - Sannella, Tarlecki (1989)   (28 citations)  (Correct)

....not be acquainted with the features and syntactic details of Standard ML itself. It will be sufficient to know that a sequence of Standard ML declarations defines a set of types and values, where some values are functions and others are constants. A complete description of the language appears in [Mil 86] and a formal semantics is in [HMT 87] 2 Extended ML is based on the modularisation facilities for Standard ML proposed in [MacQ 86] These facilities are designed to allow large Standard ML programs to be structured into modules with explicitly specified interfaces. Under this proposal, ....

Milner, R. The Standard ML core language (revised). In [HMM 86] (1986).


When Do Datatypes Commute? - Hoogendijk, Backhouse (1997)   (Correct)

....commonly occurring patterns is vital to reusability and thus to programmer productivity. One of the most significant contributions to generic programming has been the notion of parametric polymorphism first introduced by Strachey [32] and later incorporated in the language ML by Milner [25, 26]. The use of parametric polymorphism eliminates the compulsion in languages like Pascal to provide irrelevant type information. For example, it is irrelevant to the computation of the length of a list whether the elements of the list 1 are integers, characters, or whatever. In Pascal this ....

R. Milner. The standard ML core language. Polymorphism, II(2), October 1985.


Inversion of Functions - Heckmann (1989)   (Correct)

....returns zero, one, or many results of type B. Thus, the inverse function always exists: f Gamma1 : B A; f Gamma1 y = fx 2 A j y 2 fxg. The capability to invert functions allows for the usage of arbitrary functions in patterns. Classically, i.e. in functional languages such as Standard ML [9], Hope [3] and Miranda [13] only constructors may be used in patterns, e.g. f (cons (h; t) In the experimental language TrafoLa H [7, 8] a few predefined functions, e.g. concatenation, could also be used in patterns, since the inverses of these functions were statically included ....

Milner, R: The Standard ML Core Language. In: Polymorphism, Vol. II, Number 2, (Oct. 1985)


Coercion as a Metaphor for Computation - Jagannathan   (Correct)

....of the binding declaration y = 4 , the user input, set y 4) the second application of f would have used the new value of y . This property of the COE top level front end is in contrast to the behaviour of most Lisps but is consistent with other lexically scoped interpreted languages such as ML [23]. Languages that use program objects such as packages or classes would be hard pressed to support this kind of structure because they provide no operations to compose new environments dynamically. For example, given a Simula or Smalltalk class C, one cannot dynamically construct a new class C 0 ....

Robin Milner. The Standard ML Core Language. Technical Report CSR-157-84, Edinburgh University, 1984.


A Direct Algorithm for Type Inference in the Rank 2 Fragment.. - Kfoury, Wells (1994)   (43 citations)  (Correct)

....programmer write generic functions that work uniformly on arguments of different types and it thus avoids the maintenance problem that results from duplicating similar program code at different types. The first programming language to use polymorphic type inference was the functional language ML [GMW79, Mil85]. Due to its usefulness, many of the aspects of ML have been subsequently incorporated in other languages (e.g. Miranda [Tur85] Haskell [HW88] ML shares with Algol 68 properties of compile time type checking, strong typing and higher order functions while also providing automatic type inference ....

R. Milner. The standard ML core language. Polymorphism, 2(2), Oct. 1985.


A Runtime System - Appel (1990)   (5 citations)  (Correct)

.... read in conjunction with an earlier paper on the SML NJ generational garbage collector[3] 2 Standard ML of New Jersey The ML language originated as part of the Edinburgh LCF proof system [14] and was soon implemented as a stand alone compiler [10] 11] The language was standardized [22] 21] [23][17] and Standard ML has been implemented at Edinburgh, Cambridge, and New Jersey; the New Jersey implementation[8] is a joint e#ort between researchers at AT T Bell Laboratories and Princeton University. Though ML was first implemented as the meta language of a theorem proving system, Standard ....

Robin Milner. The Standard ML core language. Polymorphism, 2(2), October 1985.


Persistent Object Stores - Brown (1988)   (24 citations)  (Correct)

....of programming languages that included Pascal, newer programming languages have been developed that use more sophisticated type systems and also reduce the potential for spurious errors. Some examples of these newer programming languages are Ada[ada83] CLU[lis81] Galileo[alb85b] KRC[tur82] ML[mil85], Salgol [mor82] PS algol[psa88] and SASL[tur79] Each of these programming languages provide one or more of the following features: a) abstract data types, b) first class procedure values, c) type inheritance, d) the explicit initialisation of all data before it is used, e) automatic bounds ....

Milner R. The Standard ML Core Language. Polymorphism, vol. 2, no. 2, 1985.


Implementing Context Patterns in the Glasgow Haskell Compiler - Mohnen, Tobies (1997)   (Correct)

....direct translation to abstract machine code is not adequate for the ghc, due to the structure of the intermediate language Core. Although we have presented context patterns in the language Haskell, this concept can easily be adopted for other (functional) languages using pattern matching like ML [Mil84], Clean [BvELP87] or PIZZA [OW97] Appendix: Complete Translation of initlast For the initlast example initlast [ error Empty list initlast (c [x] c [ x) we obtain the following translation initlast [ error Empty list initlast l = let chk0 (n0,xb0) x0 = case n0 of 1 case ....

R. Milner. The standard ML core language. Dept Computer Science, University of Edinburgh, 1984.


A Runtime System (DRAFT) - Andrew Appel   (Correct)

....to those who might have to read, modify, or maintain the source code to the runtime system. 2 Standard ML of New Jersey The ML language originated as part of the Edinburgh LCF proof system [14] and was soon implemented as a stand alone compiler [10] 11] The language was standardized [21] 20] [22][16] and Standard ML has been implemented at Edinburgh, Cambridge, and New Jersey[8] the New Jersey implementation is a joint effort between researchers at AT T Bell Laboratories and Princeton University. Though ML was first implemented as the meta language of a theorem proving system, Standard ....

Robin Milner. The Standard ML core language. Polymorphism, 2(2), October 1985.


Context Patterns in Haskell - Mohnen (1996)   (4 citations)  (Correct)

....possible optimisations. The translation and the integration is described in greater detail in an accompanying paper [MT97] Although we have presented context patterns in the language Haskell, this concept can easily be adopted for other (functional) languages using pattern matching like ML [Mil84], Clean [BvELP87] or PIZZA [OW97] ....

R. Milner. The standard ML core language. Dept Computer Science, University of Edinburgh, 1984.


A Programming Language Supporting First-Class Parallel.. - Jagannathan (1989)   (2 citations)  (Correct)

....The definition my cell : cons X Y) yields my cell : map car : X cdr : Y rplaca : lambda (new car) set car new car) rplacd : lambda (new cdr) set cdr new cdr) Evaluating my cell.car yields X. This solution is similar in spirit to one that could be formulated in a language like ML[51] that allows record fields to contain procedures 8 except that, unlike a simple record, a map has spatial characteristics map elements may be selected by position as well as by name; thus, one could also evaluate my cell[1] to yield X. Example: To illustrate this point more clearly, consider ....

Robin Milner. The Standard ML Core Language. Technical Report CSR-157-84, Edinburgh University, 1984.


The Poly and ML System: Low Level Support - David Matthews   (Correct)

....Poly and ML System: Low Level Support David C.J. Matthews 9 December 1987 1 Introduction This document forms part of a set describing the Poly[2] and Standard ML[1] systems. It is concerned with the low level part of the system and the interface to the outside world. In particular it describes the data structures used to represent various high level objects, and the algorithms used in the garbage collector and other low level routines. It is intended ....

Robin Milner, The Standard ML Core Language, Edinburgh University.


Tips for Computer Scientists - Standard Ml   (Correct)

....when the function value is created, not when the function is applied. Example 7.2 Assume we have already declared a function length which, when applied to a list l, returns the length of l. Then the declarations below bind y to 18. local val l = 15 in fun f(r) l r end; val y = let val l = [7,9,12] in f(length l) end The two bindings involving value variable l have nothing with to do with each other. ut 8 Constructed Values Standard ML has several ways of constructing values out of existing values. One way is record formation, which includes pairing and tupling. Another way is ....

....(see Sec. 20) Notice that structures can be declared inside structures, but signatures and functor can be declared at the top level only. 29 Further Reading The Definition of Standard ML[9] defines Standard ML formally. It is accompanied by a Commentary[8] Milner s report on the Core Language[7], MacQueen s modules proposal[6] and Harper s I O proposal were unified in[12] Several books on Computer Programming, using Standard ML as a programming language, are available[5,11,10,13, 3] In addition, there are medium length introductions[4,14] Compilation techniques are treated by ....

Robin Milner. The Standard ML Core Language. Technical Report CSR-16884, Dept. of Computer Science, University Of Edinburgh, October 1984. Also in[12].


A Direct Algorithm for Type Inference in the Rank 2 Fragment.. - Kfoury, Wells (1993)   (43 citations)  (Correct)

....lets the programmer write polymorphic functions that work uniformly on arguments of different types and avoids the maintenance problem that results from duplicating similar code at different types. The first programming language to use polymorphic type inference was the functional language ML [GMW79, Mil85]. Due to its usefulness, many of the aspects of ML have been subsequently incorporated in other languages (e.g. Miranda [Tur85] ML shares with Algol 68 properties of compile time type checking, strong typing and higher order functions while also providing type inference and polymorphism. The ....

R. Milner. The standard ML core language. Polymorphism, 2(2), Oct. 1985.


NATURAL EXPERT: A Commercial Functional Programming.. - Hutchison, Neuhaus.. (1993)   (4 citations)  (Correct)

No context found.

Milner, R., The standard ML core language, internal report CSR-168-84, Edinburgh University, (1984).


Reasoning with the Formal Definition of Standard ML in HOL - Syme (1993)   (17 citations)  (Correct)

No context found.

Robin Milner. The Standard ML Core language. Polymorphism, 2(2), 1985.

First 50 documents

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