70 citations found. Retrieving documents...
Andrew W. Appel and David B. MacQueen. A Standard ML compiler. In Proceedings of the Functional Programming Languages and Computer Architecture, pages 301--324. Springer-Verlag, 1987. ISBN 3-540-18317-5. Lecture Notes In Computer Science (Vol. 274).

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

Unboxed Objects and Polymorphic Typing - Leroy (1992)   (155 citations)  (Correct)

....solution is to assume a default size, common to all objects, and default calling conventions, common to all functions, just as if the language was not statically typed. Most existing ML implementations have taken this approach: they use one word representations and uniform calling conventions [6, 9, 4, 3]. This approach solves the problem of polymorphism, but results in a serious loss of eciency. For instance, tuples are always heap allocated, making passing several arguments to a function quite expensive. This eciency loss is unfortunate, especially when large parts of a program are monomorphic ....

A. W. Appel and D. B. MacQueen. A Standard ML compiler. In Functional Programming Languages and Computer Architecture 1987.


Standard ML-NJ weak polymorphism and imperative constructs - Hoang, Mitchell, Viswanathan (1993)   (6 citations)  (Correct)

....pure polymorphism does not prevent run time type errors in the presence of assignment. Although similar problems occur with continuations and exceptions, as illustrated in [HL91, WF92] we restrict our attention to the simpler illustrative example of side e ects. In Standard ML of New Jersey [AM87, AM91], weak type variables are used to characterize functions that may create reference cells after some number of applications. Since the type of a polymorphic function may become more specialized with each application (as, for example, when a polymorphic function is applied to a monomorphic ....

A.W. Appel and D.B. MacQueen. A Standard ML compiler. In Functional Programming Languages and Computer Architecture, pages 301{ 324. Springer LNCS 274, 1987.


Compilation and Memory Management for ASF+SDF - van den Brand, Klint, Olivier (1999)   (5 citations)  (Correct)

.... for standard (lazy) versions and for versions optimized with strictness annotations (strict) ffl The ELAN compiler developed at INRIA, Nancy [8] ffl The Opal compiler developed at the Technische Universitat Berlin [16] ffl The Glasgow Haskell compiler [21] ffl The Standard ML compiler [3]. 10 0 100 200 300 400 500 600 700 800 17 18 19 20 21 22 23 Asf Sdf Asf Sdf (no sharing) Clean (lazy) Clean (strict) Opal Haskell SML Elan Figure 10: Execution times for the evalexp benchmark 4.1.1 The evalsym Benchmark The first benchmark is called evalsym and uses an ....

A.W. Appel and D. MacQueen. A standard ML compiler. In G. Kahn, editor, Functional Programming Languages and Computer Architecture, LNCS, pages 301--324, 1987.


An optimizing ML to C compiler - Cridlig (1992)   (10 citations)  (Correct)

....Benchmarks Some benchmarks are listed on figure 1. They were performed on a Decstation 3100 with the R2000 RISC processor. Tests on a Sparc architecture yield similar results. We have chosen three other good compilers to make some comparisons. These are the well known SML NJ native code compiler [AM87], the fast bytecode interpreter Caml Light and another ML to C compiler, Emmanuel Chailloux s CeML [Cha91] Roughly speaking, SML NJ uses a Continuation Passing Style translation scheme with a fast stop and copy generational garbage collector, and allocates everything on the heap [App87] ....

A. Appel and D. MacQueen. A Standard ML compiler. In G. Kahn, editor, Proceedings of the Conference on Functional Programming and Computer Architecture. Springer-Verlag, September 1987. LNCS Vol. 274.


A Combinational Framework For Parallel Programming Using.. - Hamdan (2000)   (8 citations)  (Correct)

.... a boolean constant val StringConst = AbC12 ; a string constant val IntConst = IntegerConst; an integer constant More complex constants like tuples and lists can be built using atomic expressions, for instance: val TupleConst = f ABC ,f21, truegg; a tuple constant val ListConst = [1,2,3], 4,5,6] a nested list constant In function de nitions, a single or multiple function(s) can be de ned. To de ne a function an identi er has to be given after the def keyword which might be followed by a number of arguments. Each argument has to be a valid name identi er and it is possible ....

....expression Exp1 must be boolean valued. If it evaluates to true then the conditional expression has the value of Exp2, otherwise the expression s value is Exp3. For instance: def apply b ll = If b function definition Then ( map IncrementOne) ll) Else ( map MultiplyTwo) ll) apply true) [1,2,3,4,5,6,7,8,9,10]) function application 3.2.2.1 The Parallel Operators Ektran provides the following skeleton HOFs for parallel programming and we call them parallel operators. The chosen operators are a number of the functional forms provided in FP and we think they are common HOFs used in skeleton ....

[Article contains additional citation context not shown here]

A. W. Appel and D. B. MacQueen. A standard ML compiler. In Proceedings of Functional Programming Language and Computer Architecture, volume 274 of Lecture Notes on Computer Science, pages 301-324. Springer-Verlag, 1987.


Standard ML-NJ weak polymorphism and imperative constructs - Mitchell, Viswanathan (1994)   (1 citation)  (Correct)

....of a type system that appears to subsume the algorithm used in SML NJ and a correctness proof for it. Although similar problems occur with continuations and exceptions, as illustrated in [HL91, WF92] we restrict our attention to side effects, in this paper. In Standard ML of New Jersey [AM87, AM91], so called weak type variables are used to characterize functions that may create reference cells after some number of applications. Since the type of a polymorphic function may become more specialized with each application (as, for example, when a polymorphic function is applied to a ....

A.W. Appel and D.B. MacQueen. A Standard ML compiler. In Functional Programming Languages and Computer Architecture, pages 301--324. Springer LNCS 274, 1987.


A Novel Approach Towards Peephole Optimisations - Gill (1991)   (1 citation)  (Correct)

....be possible with more complete mappings, possibly based on extensive profiling of the relative frequency of intermediate instruction usage. The code produced by the augmented Edinburgh ML showed comparable execution speed with the production ML compilers PolyML [6] and Standard ML of New Jersey [2]. Edinburgh ML generally gave slightly favourable observed performance, however there are too many mitigating factors (for example different intermediate code generation strategies, the usage of different heap allocation and garbage collecting methods, possibly of arbitrary precision arithmetic, ....

Andrew W. Appel and David B. MacQueen. A Standard ML compiler. In Functional Programming Languages and Computer Architecture, pages 301--324. Springer-Verlag, 1987.


The Polymorphic Pi-calculus: Theory and Implementation - Turner (1995)   (114 citations)  (Correct)

.... of calculus to C presented in this dissertation is quite closely related to the SML to C compiler described in [TAL90] The stackless representation used here for calculus processes is very reminiscent of the continuation passing style of code generation used in the New Jersey ML compiler [AM87] upon which the SML to C compiler is built) Chapter 11 Conclusions and further work Throughout this dissertation we have looked at the calculus from the perspective of concurrent programming. We have shown that the calculus admits a simple type system which can be extended to include many ....

Andrew W. Appel and David B. MacQueen. A Standard ML compiler. In Functional Programming Languages and Computer Architecture, pages 301--324. Springer-Verlag, 1987.


Specification and Validation of Control Intensive ICs in hopCP - Akella, Gopalakrishnan (1994)   (1 citation)  (Correct)

....HFGs . Note that, in the above example a 1 and a 2 are primitive actions. The notion of synchronization and value communication can be extended in a similar way to compound actions. The details of semantics of parComp are presented in [1] parComp has been implemented in Standard ML of New Jersey [5] in the prototype hopCP design environment on a SUN sparcstation. It exhibits acceptable runtimes of the order of seconds on the 8251 USART example. 5.2 Seriality Checking and its Uses Determining whether two specific actions of an HFG are serial or are potentially concurrent has numerous ....

Appel, A., and MacQueen, D. A Standard ML compiler. In Functional Programming Languages and Computer Architecture (Sept. 1987).


Continuing Into the Future: the Return - Moreau (1996)   (Correct)

....is an abstract machine that models a parallel computer with a shared memory. 1 Introduction The continuation of an expression is defined as the computation that remains to be performed after evaluating the expression [22] Some languages, like Scheme [21, 23] or Standard ML of New Jersey [1] provide the programmer with first class continuations; in these languages, continuations have the same status as numerical values, i.e. they can be passed in argument to or returned by functions, or stored in data structures. First class continuations are useful to program control structures like ....

Andrew W. Appel and David B. MacQueen. A Standard ML compiler. In Functional Programming Languages and Computer Architecture, number LNCS 274, pages 301--324. Springer--Verlag, 1987.


A Calculus for Compiling and Linking Classes - Fisher, Reppy, Riecke (2000)   (18 citations)  (Correct)

....formal linking frameworks [Car97,Ram96,GM99,AZ99,DEW99] Of particular relevance here are uses of fi reduction to implement linking of modules, as we do for the linking of classes. From the very beginning, the Standard ML of New Jersey compiler has used the calculus to express module linking [AM87] More recently, Flatt and Felleisen describe a calculus for separate compilation that maps units to functions over their free variables [FF98] 8 Conclusions We have presented ink , a low level calculus for representing class based object oriented languages. ink satisfies the goals we set ....

Appel, A. W. and D. B. MacQueen. A Standard ML compiler. In FPCA'87, vol. 274 of LNCS, New York, NY, September 1987. Springer-Verlag, pp. 301--324.


Continuation-based Transformations for Coordination Languages - Jagannathan (1999)   (Correct)

.... sub languages, Olden specifies parallelism using continuation capturing operations based on futures [Hal85] and lazy task creation [MKH90] There has been much work in supporting efficient capture and restoration of continuations in language implementations such as Standard ML of New Jersey [AM87, App92] or Chez Scheme [HDB90, BWD96] By using techniques found in these implementations, we believe the overhead of moving continuations in a distributed environment can also be made tractable. Indeed, experimental results from early work on computation migration [HWW93] provides evidence that the cost ....

Andrew W. Appel and David B. Macqueen. A Standard ML compiler. In Conference on Functional Programming and Computer Architecture, number 274 in Lecture Notes in Computer Science, pages 301--324. Springer--Verlag, 1987.


Separate Compilation for Standard ML - Appel, MacQueen (1994)   (26 citations)  Self-citation (Appel Macqueen)   (Correct)

....as arguments to the ma chine code when it is executed. Individual functions exported by the code will generally be closures constructed during the execution phase, and these runtime created closures hold the imported external references. This has always been the case in Standard ML of New Jersey[3], though our current use of pids is more sophisticated than our previous use of lvar numbers, which were not persistent (lvar numbers did not retain their meaning from one ML process to another, and thus were useless for separate compilation) The interactive read eval print loop maintains a ....

Andrew W. Appel and David B. MacQueen. A Stan- dard ML compiler. In Gilles Kahn, editor, Functional Programming Languages and Computer Architecture (LNCS 7), pages 301-24, New York, 1987. Springer- Verlag.


An Implementation of Standard ML Modules - David Macqueen Att (1988)   (22 citations)  Self-citation (Macqueen)   (Correct)

....Standard ML design. Starting in the spring of 1986, Andrew Appel, Trevor Jim, and I have implemented a new Standard ML compiler, written in Standard ML, and initially bootstrapped from the Edinburgh compiler. An overview of this new compiler, known as Standard ML of New Jersey, is given in [1]. The implementation of modules in this new compiler went through two generations. A first version was done in the fall of 1986, but it was completely rewritten in the summer of 1987 following discussions of the operational static semantics of modules with Robin Milner, Mads Tofte, and Bob Harper ....

....efficient signature matching and functor application, with minimal duplication of static (i.e. symbol table) information (3) efficient representation and checking of sharing constraints. 3.1. Dynamic representations and processes. The run time representations of modules are remarkably simple [1]. Signatures and types have no run time representation they exist only at the static level. A structure is represented as a record whose components represent the dynamic structure components (i.e. substructures, values, and exceptions) in a canonical order. A functor is represented as an ....

A. Appel and D. MacQueen, A Standard ML compiler, Proceedings of the Conference on Functional Programming and Computer Architecture, Portland, September 1987, G. Kahn, ed., LNCS Vol. 274, Springer-Verlag, 1987.


Callee-save Registers in Continuation-passing Style - Appel, Shao (1992)   (14 citations)  Self-citation (Andrew)   (Correct)

....within the closure must be standardized so that the caller can find it and jump to it. A typical representation puts the code pointer at field 0 of the closure record, and the free variables at other offsets from the closure pointer, perhaps in a linked list of closures. One interesting trick [17, 5] is to let several functions share a single clo sure. The functions m and s might ordinarily be represented like this: machine code for m m S machine code for s The closure for m has the value for the free variable t; the closure for s has free variables m and e. Now consider this data ....

Appel, Andrew W. and MacQueen, David B. A Standard ML compiler. In Kahn, Gilles, editor, Functional Programming Languages and Computer Architecture (LNCS 274), Springer-Verlag, New York (1987) 301 24.


A Critique of Standard ML - Appel (1992)   (21 citations)  Self-citation (Appel)   (Correct)

....hardware (e.g. with snoopy caches) In ML, worries about updates disappear for all but reference values, which are rare enough that conventional synchronization and message passing would be adequately efficient. The module system Run time aspects of the module system turn out to be very simple [5]. A structure that exports n types and m values can be implemented as an ordinary m tuple (types are needed only at compile time) Functors can be implemented as functions that take structures (tuples) as arguments and return structures as results. Since all inter module linkage can be expressed ....

Andrew W. Appel and David B. MacQueen. A Standard ML compiler. In Gilles Kahn, editor, Functional Programming Languages and Computer Architecture (LNCS 274), pages 301--24, New York, 1987. Springer-Verlag.


Allocation without Locking - Appel (1989)   (2 citations)  Self-citation (Appel)   (Correct)

....instruction attributable to each allocation. When the cost of garbage collection is that low, it makes sense to try to minimize the number of instructions necessary to perform an allocation. This is particularly important in languages that perform very frequent allocations; the author s ML compiler[3] typically performs one allocation for every 80 instructions executed. If the cost of the allocation can be reduced from 20 instructions to 5, that s about a 15 improvement in overall system performance. In LISP, an allocation is typically expressed as (cons A B) meaning allocate a two word ....

Andrew W. Appel and David B. MacQueen. A Standard ML compiler. In Gilles Kahn, editor, Functional Programming Languages and Computer Architecture (LNCS 274), pages 301--324, Springer--Verlag, 1987.


Hot-Sliding in ML - Andrew Appel Princeton (1994)   (6 citations)  Self-citation (Appel)   (Correct)

....point to each other. Instead, each procedure call in the code knows at what offset in the closure to find its target address. The extra indirection at every external procedure call is not too costly. This module linking technology has been used successfully for several years in the SML NJ system [1], and for many years before that in other systems whose implementers were too lazy to implement real linkediting. Switch Lines Accounting Task Scheduler Machine code Closures Figure 2: Closures for module linking. The named boxes are machine code, which contain no outgoing pointers; the ....

Andrew W. Appel and David B. MacQueen. A Standard ML compiler. In Gilles Kahn, editor, Functional Programming Languages and Computer Architecture (LNCS 274), pages 301--24, New York, 1987. Springer-Verlag.


Runtime Tags Aren't Necessary - Appel (1988)   (20 citations)  Self-citation (Appel)   (Correct)

....implemented, we can estimate its performance relative to ordinary (tagged) garbage collection. We will make some arbitrary guesses about the cost of various operations, and calculate the resulting impact on time and space of an executing program. We will use the Standard ML of New Jersey compiler[3] for comparison. The code generated by this compiler uses a low order tag bit on each (4 byte) word to distinguish pointers from integers, and uses a one word descriptor on each record to communicate its type to the garbage collector. The tag bits and descriptor words are used only by the garbage ....

Andrew W. Appel and David B. MacQueen. A Standard ML compiler. In Gilles Kahn, editor, Functional Programming Languages and Computer Architecture (LNCS 274), pages 301--324, Springer--Verlag, 1987.


Interfacing Compilers, Proof Checkers, and Proofs for Foundational.. - Wu (2005)   (Correct)

No context found.

Andrew W. Appel and David B. MacQueen. A Standard ML compiler. In Proceedings of the Functional Programming Languages and Computer Architecture, pages 301--324. Springer-Verlag, 1987. ISBN 3-540-18317-5. Lecture Notes In Computer Science (Vol. 274).


Using ML as a Command Language - Steve Chapin Ryan (1990)   (Correct)

No context found.

Andrew W. Appel and David B. MacQueen. A Standard ML Compiler. In Gilles Kahn, editor, Functional Programming Languages and Computer Architecture, pages 301-324. Springer-Verlag, 1987.


A Virtual Assembler for an Abstract Machine - Moonen (1994)   (Correct)

No context found.

Andrew W. Appel and David B. MacQueen. A Standard ML compiler. In Gilles Kahn, editor, Functional Programming Languages and Computer Architecture, volume 274 of Lecture Notes in Computer Science, pages 301-- 24, New York, 1987. Springer-Verlag.


A complete and realistic implementation of quotations for ML - Mauny, de Rauglaudre (1994)   (2 citations)  (Correct)

No context found.

A. Appel and D. MacQueen. A Standard ML compiler. In G. Kahn, editor, Proceedings of the ACM Conference on Functional Programming Languages and Computer Architecture, 1987.


A User's Guide for the Reduction System π-RED - Kluge (1994)   (Correct)

No context found.

Appel, A.W.; MacQueen, D.: A Standard ML Compiler, Proceedings of the Conference on Functional Programming and Computer Architecture, Portland, Oregon, Lecture Notes in Computer Science, No. 274, 1987, pp. 301--324


A User's Guide for the Reduction System π-RED - Kluge (1994)   (Correct)

No context found.

Appel, A.W.; MacQueen, D.: A Standard ML Compiler, Proceedings of the Conference on Functional Programming and Computer Architecture, Portland, Oregon, Lecture Notes in Computer Science, No. 274, 1987, pp. 301-324

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