Results 1 -
5 of
5
Flow Caml in a Nutshell
- Proceedings of the first APPSEM-II 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 46 (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.
Rigorous Automated Network Security Management
, 2003
"... Achieving a security goal in a networked system requires the cooperation of a variety of devices, each device potentially requiring a di#erent configuration. Many information security problems may be solved with appropriate models of these devices and their interactions, and giving a systematic ..."
Abstract
-
Cited by 14 (1 self)
- Add to MetaCart
Achieving a security goal in a networked system requires the cooperation of a variety of devices, each device potentially requiring a di#erent configuration. Many information security problems may be solved with appropriate models of these devices and their interactions, and giving a systematic way to handle the complexity of real situations.
Lazy Dynamic Input/Output in the lazy functional language Clean
- The 14th International Workshop on the Implementation of Functional Languages, IFL’02, Selected Papers, volume 2670 of LNCS
, 2002
"... The new release of Clean oers a hybrid type system with both static and dynamic typing. Any common static Clean expression can in principle be converted into a dynamic expression (called a "dynamic "), and backwards. The type of the dynamic (an encoding of the original static type) can be checked at ..."
Abstract
-
Cited by 10 (9 self)
- Add to MetaCart
The new release of Clean oers a hybrid type system with both static and dynamic typing. Any common static Clean expression can in principle be converted into a dynamic expression (called a "dynamic "), and backwards. The type of the dynamic (an encoding of the original static type) can be checked at run-time via a special pattern match after which the dynamic expression can be evaluated as eciently as usual. Clean furthermore oers "dynamic I/O": any application can read in a dynamic that is stored by some other application. Such a dynamic can contain unevaluated functions (closures) that are unknown in the receiving application. The receiving application therefore has to be extended with these function de nitions. This is not trivial because Clean uses compiled code and is not an interpreted language that uses some byte code. A running Clean application therefore communicates with a dynamic linker that is able to add the missing binary code to the running application. So, dynamics can be used to realize plug-ins and mobile code in a type safe way without loss of eciency in the resulting code. In this paper we explain the implementation of dynamic I/O. Dynamics are written in such a way that internal sharing is preserved when a dynamic is read. Dynamics are read in very lazily in phases: rst its type is checked, and only if the evaluation is demanded, the dynamic expression is reconstructed and the new code is linked in. Dynamics can become quite complicated: they can contain sharing, they can be cyclic, they can even refer to other dynamics, and they may be distributed over a computer network. We have managed to completely hide the internal storage structure for the user by separating the storage of dynamics in system space and user space. For the user a dynamic o...
A separate compilation extension to Standard ML (working draft
, 2006
"... This is a proposal for an extension to the Standard ML programming language to support separate compilation. The extension allows the programmer to write a program broken into multiple fragments in a way that would be compatible between different implementations. It also allows for the separate comp ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
This is a proposal for an extension to the Standard ML programming language to support separate compilation. The extension allows the programmer to write a program broken into multiple fragments in a way that would be compatible between different implementations. It also allows for the separate compilation of these fragments, for incremental recompilation strategies such as cut-off recompilation, and for a range of implementation strategies including whole-program compilation. The semantics of separate compilation is defined independent of the underlying semantic framework
Labeled and optional arguments for Objective Caml
- In JSSST Workshop on Programming and Programming Languages
, 2001
"... We added labeled and optional arguments to the Objective Caml language, combining currying and commutation. Contrary to a previous attempt, the formal system we present here defines semantics of both out-of-order application and optional parameter discarding independently of types. We extend the ML ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We added labeled and optional arguments to the Objective Caml language, combining currying and commutation. Contrary to a previous attempt, the formal system we present here defines semantics of both out-of-order application and optional parameter discarding independently of types. We extend the ML type system to cope with these new features, and show how types can be used to obtain an efficient compilation method. 1

