Results 1 -
7 of
7
Dynamics in ML
, 1993
"... Objects with dynamic types allow the integration of operations that essentially require runtime type-checking into statically-typed languages. This article presents two extensions of the ML language with dynamics, based on our work on the CAML implementation of ML, and discusses their usefulness. ..."
Abstract
-
Cited by 53 (0 self)
- Add to MetaCart
Objects with dynamic types allow the integration of operations that essentially require runtime type-checking into statically-typed languages. This article presents two extensions of the ML language with dynamics, based on our work on the CAML implementation of ML, and discusses their usefulness. The main novelty of this work is the combination of dynamics with polymorphism.
Polymorphic Type Inference and Assignment
, 1991
"... We present a new approach to the polymorphic typing of data accepting in-place modi cation in ML-like languages. This approach is based on restrictions over type generalization, and a re ned typing of functions. The type system given here leads to a better integration of imperative programming sty ..."
Abstract
-
Cited by 47 (1 self)
- Add to MetaCart
We present a new approach to the polymorphic typing of data accepting in-place modi cation in ML-like languages. This approach is based on restrictions over type generalization, and a re ned typing of functions. The type system given here leads to a better integration of imperative programming style with the purely applicative kernel of ML. In particular, generic functions that allocate mutable data can safely be given fully polymorphic types. We show the soundness of this type system, and give a type reconstruction algorithm.
A Parallel Virtual Machine for Bulk Synchronous Parallel ML
, 2003
"... Machine [8] (ZAM) which is the virtual machine used in the implementations of the Objective Caml [10] and Caml-light languages and which is very efficient. ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Machine [8] (ZAM) which is the virtual machine used in the implementations of the Objective Caml [10] and Caml-light languages and which is very efficient.
Foundations of Functional Programming
, 2000
"... ions are compiled to the closure command, which will push a closure onto the Stack. The closure will include the current Environment and will hold M as a list of commands, from compilation: [[ #x .M ]] = closure(x, [[ M ]] ) Applications are compiled to the app command at compile time. Under the ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
ions are compiled to the closure command, which will push a closure onto the Stack. The closure will include the current Environment and will hold M as a list of commands, from compilation: [[ #x .M ]] = closure(x, [[ M ]] ) Applications are compiled to the app command at compile time. Under the interpreted SECD machine, this work occurred at run time: [[ MN]] = [[ N ]] ; [[ M ]] ; app We could add further instructions, say for conditionals. Let test(C 1 , C 2 ) be replaced by C 1 or C 2 , depending upon whether the value on top of the Stack is true or false : [[ if E then M else N ]] = [[ E ]] ; test([[ M ]] , [[ N ]] ) To allow built-in 2-place functions such as + and could be done in several ways. Those functions could be made to operate upon ordered pairs, constructed using a pair instruction. More efficient is to introduce arithmetic instructions such as add and mult , which pop both their operands from the Stack. Now ((#xy.x + y) 3) 5 compiles to const(5...
Lazy Rewriting on Eager Machinery
- Rewriting Techniques and Applications, number 914 in Lecture Notes in Computer Science
, 1995
"... We define Lazy Term Rewriting Systems and show that they can be realized by local adaptations of an eager implementation of conventional term rewriting systems. The overhead of lazy evaluation is only incurred when lazy evaluation is actually performed. Our method is modelled by a transformation ..."
Abstract
- Add to MetaCart
We define Lazy Term Rewriting Systems and show that they can be realized by local adaptations of an eager implementation of conventional term rewriting systems. The overhead of lazy evaluation is only incurred when lazy evaluation is actually performed. Our method is modelled by a transformation of term rewriting systems, which concisely expresses the intricate interaction between pattern matching and lazy evaluation. The method easily extends to term graph rewriting. CR Subject Classification (1991): D.3.4 [Programming languages]: Processors -- Compilers, Optimization; D.1.1 [Programming Techniques]: Applicative (Functional) Programming; D.1.6: Logic Programming. AMS Subject Classification (1991): 68N20: Compilers and generators; 68Q05: Models of Computation; 68Q42: Rewriting Systems Keywords & Phrases: lazy term rewriting, program transformation. Note: Partial support received from the European Communities under the ESPRIT project 5399 (Compiler Generation for Parallel M...
FOL: An object oriented extension to the SISAL Language (Extended Abstract)
, 1997
"... Marc Pantel, Marcel Gandriau, Patrick Sall'e IRIT/ENSEEIHT, 2, rue Charles Camichel, 31071 TOULOUSE, FRANCE, fpantel,gandri,salleg@irit.fr April 2, 1997 Abstract This paper describes an improvement of the reusability model of the SISAL language. ..."
Abstract
- Add to MetaCart
Marc Pantel, Marcel Gandriau, Patrick Sall'e IRIT/ENSEEIHT, 2, rue Charles Camichel, 31071 TOULOUSE, FRANCE, fpantel,gandri,salleg@irit.fr April 2, 1997 Abstract This paper describes an improvement of the reusability model of the SISAL language.
5 ISWIM: The λ-calculus as a Programming Language 24
"... (The vast majority of these 2006/07 notes are due to Professor Paulson; ..."

