Results 1 -
6 of
6
Achieving information flow security through precise control of effects
- In 18th IEEE Computer Security Foundations Workshop
, 2005
"... This paper advocates a novel approach to the construction of secure software: controlling information flow and maintaining integrity via monadic encapsulation of effects. This approach is constructive, relying on properties of monads and monad transformers to build, verify, and extend secure softwar ..."
Abstract
-
Cited by 11 (3 self)
- Add to MetaCart
This paper advocates a novel approach to the construction of secure software: controlling information flow and maintaining integrity via monadic encapsulation of effects. This approach is constructive, relying on properties of monads and monad transformers to build, verify, and extend secure software systems. We illustrate this approach by construction of abstract operating systems called separation kernels. Starting from a mathematical model of shared-state concurrency based on monads of resumptions and state, we outline the development by stepwise refinements of separation kernels supporting Unix-like system calls, interdomain communication, and a formally verified security policy (domain separation). Because monads may be easily and safely represented within any pure, higher-order, typed functional language, the resulting system models may be directly realized within a language such as Haskell. 1.
Achieving information flow security through monadic control of effects. Invited submission to
- Journal of Computer Security
"... This paper advocates a novel approach to the construction of secure software: controlling information flow and maintaining integrity via monadic encapsulation of effects. This approach is constructive, relying on properties of monads and monad transformers to build, verify, and extend secure softwar ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
This paper advocates a novel approach to the construction of secure software: controlling information flow and maintaining integrity via monadic encapsulation of effects. This approach is constructive, relying on properties of monads and monad transformers to build, verify, and extend secure software systems. We illustrate this approach by construction of abstract operating systems called separation kernels. Starting from a mathematical model of shared-state concurrency based on monads of resumptions and state, we outline the development by stepwise refinements of separation kernels supporting Unix-like system calls, interdomain communication, and a formally verified security policy (domain separation). Because monads may be easily and safely represented within any pure, higher-order, typed functional language, the resulting system models may be directly realized within a language such as Haskell. 1
Proof Abstraction for Imperative Languages
, 2003
"... Modularity in programming language semantics derives from abstracting over the structure of underlying denotations, yielding semantic descriptions that are more abstract and reusable. One such semantic framework is Liang’s modular monadic semantics in which the underlying semantic structure is encap ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Modularity in programming language semantics derives from abstracting over the structure of underlying denotations, yielding semantic descriptions that are more abstract and reusable. One such semantic framework is Liang’s modular monadic semantics in which the underlying semantic structure is encapsulated with a monad. Such abstraction can be at odds with program verification, however, because program specifications require access to the (deliberately) hidden semantic representation. The techniques for reasoning about modular monadic definitions of imperative programs introduced here overcome this barrier. And, just like program definitions in modular monadic semantics, our program specifications and proofs are representation-independent and hold for whole classes of monads, thereby yielding proofs of great generality.
Dynamically Adaptable Software with Metacomputations in a Staged Language
, 2001
"... Machine Operations ***** datatype Value = code of | Z of int | Void; push : int -> Value M branch : Label -> Label -> Value M pop : Value M read,store : Addr -> Value M ADD,LEQ,NEG : Value M pushReg,loadReg : Value M jump : Label -> Value M newSeg,endlabel : Label->Value M->Value M # ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Machine Operations ***** datatype Value = code of <Value M> | Z of int | Void; push : int -> Value M branch : Label -> Label -> Value M pop : Value M read,store : Addr -> Value M ADD,LEQ,NEG : Value M pushReg,loadReg : Value M jump : Label -> Value M newSeg,endlabel : Label->Value M->Value M #### ## Source, Static & Abstract Machine Operations for the Reference Compiler Figure 1 presents the source language for our compiler. Wehave deliberately kept this language quite simple, because we wish to keep our metacomputationbased compiler as simple as possible. ### is a simple imperative language with while loops. A program is represented as ######## ###############, where ####### are the globally-dened integer program variables with command #### of type ###. #### is either an assignment #############,aloop##############, or a sequence of such statements ############.Variables are dened only in the declarations in the top-level ####### phrase. ### has integer expressions ####### #...
Model-driven engineering from modular monadic semantics: Implementation techniques targeting hardware and software
- in Proceedings of the IFIP Working Conference on Domain Specific Languages (DSL09
, 2009
"... Abstract. Recent research has shown how the formal modeling of concurrent systems can benefit from monadic structuring. With this approach, a formal system model is really a program in a domain specific language defined by a monad for shared-state concurrency. Can these models be compiled into effic ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Abstract. Recent research has shown how the formal modeling of concurrent systems can benefit from monadic structuring. With this approach, a formal system model is really a program in a domain specific language defined by a monad for shared-state concurrency. Can these models be compiled into efficient implementations? This paper addresses this question and presents an overview of techniques for compiling monadic concurrency models directly into reasonably efficient software and hardware implementations. The implementation techniques described in this article form the basis of a semantics-directed approach to model-driven engineering. 1
Domain-Specific Embedded Languages
, 2002
"... A domain-specific embedded language (DSEL) is a domain-specific programming language with no concrete syntax of its own. Defined as a set of combinators encapsulated in a module, it borrows the syntax and tools (such as type-checkers and compilers) of its host language; hence it is economical to des ..."
Abstract
- Add to MetaCart
A domain-specific embedded language (DSEL) is a domain-specific programming language with no concrete syntax of its own. Defined as a set of combinators encapsulated in a module, it borrows the syntax and tools (such as type-checkers and compilers) of its host language; hence it is economical to design, introduce, and maintain. Unfortunately, this economy is counterbalanced by a lack of room for growth. DSELs cannot match sophisticated domain-specific languages that offer tools for domainspecific error-checking and optimisation. These tools are usually based on syntactic analyses, so they do not work on DSELs. Abstract interpretation is a technique ideally suited to the analysis of DSELs, due to its semantic, rather than syntactic, approach. It is based upon the observation that analysing a program is equivalent to evaluating it over an abstract semantic domain. The mathematical properties of the abstract domain are such that evaluation reduces to solving a mutually recursive set of equations. This thesis shows how abstract interpretation can be applied to a DSEL by replacing it with an abstract implementation

