Results 1 -
7 of
7
Polymorphic Type Inference and Abstract Data Types
- ACM Transactions on Programming Languages and Systems
, 1994
"... Data Types Konstantin Läufer Martin Odersky Loyola University of Chicago Universität Karlsruhe laufer@math.luc.edu odersky@ira.uka.de June 5, 1994 Technical Report LUC-001 Abridged version appeared in Transactions of Programming Languages and Systems Abstract Many statically-typed programming lan ..."
Abstract
-
Cited by 58 (3 self)
- Add to MetaCart
Data Types Konstantin Läufer Martin Odersky Loyola University of Chicago Universität Karlsruhe laufer@math.luc.edu odersky@ira.uka.de June 5, 1994 Technical Report LUC-001 Abridged version appeared in Transactions of Programming Languages and Systems Abstract Many statically-typed programming languages provide an abstract data type construct, such as the module in Modula-2. However, in most of these languages, implementations of abstract data types are not first-class values. Thus they cannot be assigned to variables, passed as function parameters, or returned as function results. Several higher-order functional languages feature strong and static type systems, parametric polymorphism, algebraic data types, and explicit type variables. Most of them rely on Hindley -Milner type inference instead of requiring explicit type declarations for identifiers. Although some of these languages support abstract data types, it appears that none of them directly provides light-weight abstract dat...
An Efficient Verifier of Truly Concurrent Properties
- PROCEEDINGS OF PACT'95, LNCS 964
, 1995
"... We present a parametric tool for the analysis of distributed concurrent systems. Processes are internally represented as proved transition systems. Actually, we use a fragment of them, in which only one transition exits from a node among those mutually concurrent. This permits to have compact repres ..."
Abstract
-
Cited by 8 (7 self)
- Add to MetaCart
We present a parametric tool for the analysis of distributed concurrent systems. Processes are internally represented as proved transition systems. Actually, we use a fragment of them, in which only one transition exits from a node among those mutually concurrent. This permits to have compact representations that are linear in average with the number of actions in the term of the language that describes the system. Another important property of these compact transition systems is that they preserve truly concurrent bisimulations, that can be checked in average in polynomial time. Parametricity is achieved by resorting to the rich labelling of the transitions encoding the parallel structure of processes. These labels are then "observed" for retrieving the interleaving, causal and locational semantics.
Safe Operators: Brackets Closed Forever - Optimizing optimal lambda-calculus implementations
- Appl. Algebra Engrg. Comm. Comput
, 1997
"... Considerations from category theory described in [As94] have permitted to add new rewriting rules for optimal reductions of the - calculus [Lam90, GAL92a]. These rules produce an impressive improvement in the performance of the reduction system, and provide a first step towards the solution of t ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Considerations from category theory described in [As94] have permitted to add new rewriting rules for optimal reductions of the - calculus [Lam90, GAL92a]. These rules produce an impressive improvement in the performance of the reduction system, and provide a first step towards the solution of the well known and crucial problem of accumulation of control operators. In this paper, after an introduction to optimal reductions, we exhibit the aforementioned problem and prove the correctness of the new rules.
Optimizing Optimal Lambda-Calculus Implementations
- In Rewriting Techniques and Applications
, 1994
"... In [As94], a correspondence between Lamping-Gonthier's operators for Optimal Reduction of the -calculus [Lam90, GAL92a] and the operations associated with the comonad "!" of Linear Logic was established. In this paper, we put this analogy at work, adding new rewriting rules directly suggested by the ..."
Abstract
- Add to MetaCart
In [As94], a correspondence between Lamping-Gonthier's operators for Optimal Reduction of the -calculus [Lam90, GAL92a] and the operations associated with the comonad "!" of Linear Logic was established. In this paper, we put this analogy at work, adding new rewriting rules directly suggested by the categorical equations of the comonad. These rules produce an impressive improvement of the performance of the reduction system, and provide a first step towards the solution of the well known and crucial problem of accumulation of control operators. 1 Introduction Fiftenn years ago, L`evy [Le78] proposed a complex notion of redex family to formalize the intuitive idea of optimal sharing in the -calculus (see also [Le80, AL93b]). As a main consequence, the lenght of the family reduction would provide a lower bound to the intrinsic complexity of -term reductions, in any possible implementation. L`evy's thesis raised two different kinds of problems: ffl to get some evidence that his abstrac...
User Manual
- INRIA Lorraine and CRIN
, 1995
"... The SPIKE system is an automatic theorem prover in theories presented by conditional equations. SPIKE was written in Caml Light c fl , a functional language of the ML c fl family. The program is provided with a graphic interface written in TCL/TK c fl (X11 toolkit) that allows for interaction thr ..."
Abstract
- Add to MetaCart
The SPIKE system is an automatic theorem prover in theories presented by conditional equations. SPIKE was written in Caml Light c fl , a functional language of the ML c fl family. The program is provided with a graphic interface written in TCL/TK c fl (X11 toolkit) that allows for interaction through the mouse and menus. The principal functions of SPIKE are proof by induction and an aid in the construction of correct speciøcations. In contrast to the majority of current proof systems that construct their proofs step by step and require frequent user intervention, not to say a great expertise on the part of the user, SPIKE is meant to reduce the number of interactions due to the automatisation of numerous routine tasks. The SPIKE system belongs to the family of program veriøcation tools. The development of a program demands a certain number of proof obligations. In general, the necessary proofs are tedious and veriøcation by hand becomes rapidly unreliable and even impossible. This s...
mlPicTEX, a picture environment for LATEX
"... "mlPicTex" is a tool for the design of figures which might contain text composed with L a T E X [8]. These figures are described by programs in the Caml [9] language enriched with a set of primitives for drawing lines, arrows, geometrical figures, trees and graphs. The graphical model is the same as ..."
Abstract
- Add to MetaCart
"mlPicTex" is a tool for the design of figures which might contain text composed with L a T E X [8]. These figures are described by programs in the Caml [9] language enriched with a set of primitives for drawing lines, arrows, geometrical figures, trees and graphs. The graphical model is the same as in PostScript [2]. A Caml library, called MLgraph [6], defines this graphical model in a functional style and generates PostScript files. The Caml programs describing figures are placed in the L a T E X document inside an mlPic L a T E X environment in which it is also possible to declare as an mlP i cT E X box, any piece of L a T E X text, including labels and references. mlP i cT E X is compatible with the L a T E X macro definition mechanism and allows to parameterize the mlP i cT E X pictures inside macros in order to easily obtain variations on basic pictures. Caml is used as the algorithmic language to describe pictures that we call ml pictures. Introduction The two main motivations...
Programmation Fonctionnelle Et Parallélisme: Une Approche Pragmatique
, 1994
"... We introduce DPML, an intermediate-level portable language for massively parallel programming designed as an extension of Mini-ML. Its parallel execution mode generalises data-parallelism and features explicit localisations and communications. Unlike imperative parallel languages with explicit com ..."
Abstract
- Add to MetaCart
We introduce DPML, an intermediate-level portable language for massively parallel programming designed as an extension of Mini-ML. Its parallel execution mode generalises data-parallelism and features explicit localisations and communications. Unlike imperative parallel languages with explicit communications, DPML is deterministic. A DPML program is seen as a static vector of ML programs communicating through remote evaluation and a global protocol. The language's implementation reuses that of Caml and does not require a distributed GC.

