Results 1 
6 of
6
Flow Caml in a Nutshell
 Proceedings of the first APPSEMII workshop
, 2003
"... Flow Caml is an extension of the Objective Caml language with a type system tracing information flow. It automatically checks information flow within Flow Caml programs, then translates them to regular Objective Caml code that can be compiled by the ordinary compiler to produce secure programs. I ..."
Abstract

Cited by 50 (0 self)
 Add to MetaCart
Flow Caml is an extension of the Objective Caml language with a type system tracing information flow. It automatically checks information flow within Flow Caml programs, then translates them to regular Objective Caml code that can be compiled by the ordinary compiler to produce secure programs. In this paper, we give a short overview of this system, from a practical viewpoint.
Implicit typing `a la ML for the joincalculus
 Proceedings of the 8th International Conference on Concurrency Theory, volume 1243 of Lecture Notes in Computer Science
, 1997
"... We adapt the DamasMilner typing discipline to the joincalculus. The main result is a new generalization criterion that extends the polymorphism of ML to joindefinitions. We prove the correctness of our typing rules with regard to a chemical semantics. We also relate typed extensions of the core j ..."
Abstract

Cited by 47 (12 self)
 Add to MetaCart
We adapt the DamasMilner typing discipline to the joincalculus. The main result is a new generalization criterion that extends the polymorphism of ML to joindefinitions. We prove the correctness of our typing rules with regard to a chemical semantics. We also relate typed extensions of the core joincalculus to functional languages. 1 Introduction The distributed implementation of concurrent calculi with message passing raises the problem of implementing communication channels, which finally reduces to the specification of channel managers. In order to reflect this need in the language itself, a new formalism has been recently introduced : the joincalculus [2]. This calculus is similar to Milner's asynchronous ßcalculus, except that the operations of restriction, reception and replication are all combined into a single receptor definition. Such a combination yields better control over communication. In [2, 3], we relied on this locality property to model realistic distributed sys...
Deriving Backtracking Monad Transformers
 In The International Conference on Functional Programming (ICFP
, 2000
"... In a paper about pretty printing J. Hughes introduced two fundamental techniques for deriving programs from their specication, where a specication consists of a signature and properties that the operations of the signature are required to satisfy. Briey, the rst technique, the term implementation, r ..."
Abstract

Cited by 27 (1 self)
 Add to MetaCart
In a paper about pretty printing J. Hughes introduced two fundamental techniques for deriving programs from their specication, where a specication consists of a signature and properties that the operations of the signature are required to satisfy. Briey, the rst technique, the term implementation, represents the operations by terms and works by dening a mapping from operations to observations  this mapping can be seen as dening a simple interpreter. The second, the contextpassing implementation, represents operations as functions from their calling context to observations. We apply both techniques to derive a backtracking monad transformer that adds backtracking to an arbitrary monad. In addition to the usual backtracking operations  failure and nondeterministic choice  the prolog cut and an operation for delimiting the eect of a cut are supported. Categories and Subject Descriptors D.1.1 [Programming Techniques]: Applicative (Functional) Programming; D.3.2 [Programming La...
Modeling HTML in Haskell
 In International Workshop on Practical Aspects of Declarative Languages (PADL'00
"... . We dene HTML as an embedded domain specic language in Haskell. To this end, we have designed and implemented a combinator library which provides the means to create and modify HTML elements. Haskell's type classes are employed to enforce wellformed HTML to a large degree. Haskell can then be ..."
Abstract

Cited by 20 (3 self)
 Add to MetaCart
. We dene HTML as an embedded domain specic language in Haskell. To this end, we have designed and implemented a combinator library which provides the means to create and modify HTML elements. Haskell's type classes are employed to enforce wellformed HTML to a large degree. Haskell can then be used as a meta language to map structured documents to HTML, to dene conditional content, to extract information from the documents, or to dene entire web sites. We introduce containerpassing style as a programming convention for the library. We also pinpoint some shortcomings of Haskell's type system that make the task of this library's implementor tedious. Key words: embedded domain specic language, HTML, functional programming, type classes 1 Introduction Programming one web page in isolation is not hard. Programming an entire web site can be a nightmare. While simple HTML editors help with the rst task [23, 9], full blown web authoring systems are required for the other ta...
Prolog's Control Constructs in a Functional . . .
 INTERNATIONAL JOURNAL OF FOUNDATIONS OF COMPUTER SCIENCE
"... The purpose of this article is twofold. First, we show that Prolog's control constructs can be smoothly integrated into a functional language like Haskell. The resulting `language', termed embedded Prolog, incorporates many of the features prescribed by the Prolog ISO standard: control constructs ..."
Abstract

Cited by 13 (5 self)
 Add to MetaCart
The purpose of this article is twofold. First, we show that Prolog's control constructs can be smoothly integrated into a functional language like Haskell. The resulting `language', termed embedded Prolog, incorporates many of the features prescribed by the Prolog ISO standard: control constructs including the cut, all solution collecting functions, and error handling facilities. Embedded Prolog lacks some concepts such as logical variables but it inherits all of Haskell's strengths, eg static polymorphic typing, higher order functions etc. Technically, the integration is achieved using monads and monad transformers. One of the main innovations is the de nition of a backtracking monad transformer, which allows us to combine backtracking with exception handling and interaction. Second, we work towards an axiomatization of the operations, through which the computational features are accessed. Equations are used to lay down the meaning of the various operations and their interrelations enabling the programmer to reason about programs in a simple calculational style. The axiomatization is applied to show that each nite computation has a simple canonical form.
An extension of HM(X) with first class existential and universal datatypes
"... We propose a conservative extension of HM(X), a generic constraintbased type inference framework, with existential (a.k.a. abstract) and universal (a.k.a. polymorphic) datatypes. In the first part of the article, which remains abstract of the type and constraint language (i.e. the logic X), we intr ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We propose a conservative extension of HM(X), a generic constraintbased type inference framework, with existential (a.k.a. abstract) and universal (a.k.a. polymorphic) datatypes. In the first part of the article, which remains abstract of the type and constraint language (i.e. the logic X), we introduce the type system, prove its safety and define a type inference algorithm which computes principal typing judgments. In the second part, we propose a realistic constraint solving algorithm for the case of structural subtyping, which handles the nonstandard construct of the constraint language generated by type inference: a form of bounded universal quantification.