Results 1 - 10
of
38
Computational Interpretations of Linear Logic
- Theoretical Computer Science
, 1993
"... We study Girard's Linear Logic from the point of view of giving a concrete computational interpretation of the logic, based on the Curry-Howard isomorphism. In the case of Intuitionistic Linear Logic, this leads to a refinement of the lambda calculus, giving finer control over order of evaluation an ..."
Abstract
-
Cited by 272 (3 self)
- Add to MetaCart
We study Girard's Linear Logic from the point of view of giving a concrete computational interpretation of the logic, based on the Curry-Howard isomorphism. In the case of Intuitionistic Linear Logic, this leads to a refinement of the lambda calculus, giving finer control over order of evaluation and storage allocation, while maintaining the logical content of programs as proofs, and computation as cut-elimination.
Structuring Parallel and Distributed Programs
- Software Engineering Journal
, 1993
"... The paper presents a structuring language, The paper presents a structuring language, Darwin Darwin , which allows distributed , which allows distributed and parallel programs to be structured in terms of groups of process instances and parallel programs to be structured in terms of groups of proces ..."
Abstract
-
Cited by 90 (10 self)
- Add to MetaCart
The paper presents a structuring language, The paper presents a structuring language, Darwin Darwin , which allows distributed , which allows distributed and parallel programs to be structured in terms of groups of process instances and parallel programs to be structured in terms of groups of process instances which communicate by message passing. In addition to expressing static which communicate by message passing. In addition to expressing static structure, Darwin can be used to express structures which change dynamically structure, Darwin can be used to express structures which change dynamically as execution progresses. The paper presents a set of examples illustrating the as execution progresses. The paper presents a set of examples illustrating the use of Darwin in constructing parallel programs. Since processes can be use of Darwin in constructing parallel programs. Since processes can be considered to be an abstraction of physical processors, Darwin can also be used considered...
Avoiding Packaging Mismatch with Flexible Packing
- In Proceedings of the 21st International Conference on Software Engineering
, 1999
"... This paper introduces the Flexible Packaging method, which allows a component developer to defer some decisions about component interaction until system integration time. The method divides the component 's source into two pieces: the ware, which encapsulates the component's functionality; and the p ..."
Abstract
-
Cited by 26 (0 self)
- Add to MetaCart
This paper introduces the Flexible Packaging method, which allows a component developer to defer some decisions about component interaction until system integration time. The method divides the component 's source into two pieces: the ware, which encapsulates the component's functionality; and the packager, which encapsulates the details of interaction. Both the ware and the packager are independently reusable. A ware, as a reusable part, allows a given piece of functionality to be employed in systems in different architectural styles. A packager, as a reusable part, encapsulates conformance to a component standard, like an ActiveX control or an odbc database accessor. Because the packager's source code is often formulaic, a tool is provided to generate the packager's source from a highlevel description of the intended interaction, a description written in the architectural description language UniCon. The method and tools are evaluated with two case studies, an image viewer and a database updater.
A Model for Syntactic Control of Interference
- MATHEMATICAL STRUCTURES IN COMPUTER SCIENCE
, 1993
"... Two imperative programming language phrases interfere when one writes to a storage variable that the other reads from or writes to. Reynolds has described an elegant linguistic approach to controlling interference in which a refinement of typed calculus is used to limit sharing of storage variables; ..."
Abstract
-
Cited by 19 (4 self)
- Add to MetaCart
Two imperative programming language phrases interfere when one writes to a storage variable that the other reads from or writes to. Reynolds has described an elegant linguistic approach to controlling interference in which a refinement of typed calculus is used to limit sharing of storage variables; in particular, different identifiers are required never to interfere. This paper examines semantic foundations of the approach. We describe a category that has (an abstraction of) interference information built into all objects and maps. This information is used to define a “tensor” product whose components are required never to interfere. Environments are defined using the tensor, and procedure types are obtained via a suitable adjunction. The category is a model of intuitionistic linear logic. Reynolds’ concept of passive type – i.e. types for phrases that don’t write to any storage variables – is shown to be closely related, in this model, to Girard’s “of course” modality.
Formal Methods and the Development of Dependable Systems
, 1996
"... This document type describes the functions, data and dynamic behaviour of an object associated with a specific level. In addition, boundary conditions restricting the class of possible realisations for the object are documented. (2) Architecture Description: This is a design structure which decompos ..."
Abstract
-
Cited by 17 (4 self)
- Add to MetaCart
This document type describes the functions, data and dynamic behaviour of an object associated with a specific level. In addition, boundary conditions restricting the class of possible realisations for the object are documented. (2) Architecture Description: This is a design structure which decomposes the object under consideration and/or refines its data structures. The process of decomposition introduces new objects to be associated with a lower level, as well as interfaces between them. Each new object is associated with its own lower-level requirements description. In this way, the alternation between requirements and architecture documents can be recursively applied to the decomposition tree from system to module level
Transformational Design of Real-Time Systems Part I: From Requirements to Program Specifications
- Acta Informatica
, 1997
"... In the two parts of this article a transformational approach to the design of distributed real-time systems is presented. The starting point are global requirements formulated in a subset of Duration Calculus called implementables and the target are programs in an occam dialect PL. In the first ..."
Abstract
-
Cited by 12 (4 self)
- Add to MetaCart
In the two parts of this article a transformational approach to the design of distributed real-time systems is presented. The starting point are global requirements formulated in a subset of Duration Calculus called implementables and the target are programs in an occam dialect PL. In the first part we show how the level of program specifications represented by a language SL can be reached. SL combines regular expressions with ideas from action systems and with time conditions, and can express the distributed architecture of the implementation. While Duration Calculus is state-based, SL is event-based, and the switch between these two worlds is a prominent step in the transformation from implementables to SL. Both parts of the transformational calculus rely on the mixed term techniques by which syntax pieces of two languages are mixed in a semantically coherent manner. In the first part of the article mixed terms between implementables and SL and in the second part of the article mixed terms between SL and PL are used. The approach is illustrated by the example of a computer controlled gas burner.
Towards Provably Correct Code Generation for a Hard Real-Time Programming Language
- Compiler Construction, volume 786 of Lecture Notes in Computer Science
, 1994
"... . This paper sketches a hard real-time programming language featuring operators for expressing timeliness requirements in an abstract, implementation-independent way and presents parts of the design and verification of a provably correct code generator for that language. The notion of implementation ..."
Abstract
-
Cited by 11 (5 self)
- Add to MetaCart
. This paper sketches a hard real-time programming language featuring operators for expressing timeliness requirements in an abstract, implementation-independent way and presents parts of the design and verification of a provably correct code generator for that language. The notion of implementation correctness used as an implicit specification of the code generator pays attention to timeliness requirements. Hence, formal verification of the code generator design is a guarantee of meeting all deadlines when executing generated code. 1 Introduction For an increasing number of applications, software failures may be very costly in terms of economic loss or even human suffering. This is particularly true for hard real-time control programs, where correctness does not only depend on logical correctness of results, but also on timely delivery of services. Testability of such software is poor, as timing constraints add an additional dimension to the behaviour to be examined and, furthermore,...
Specification and Stepwise Development of Communicating Systems
, 1991
"... This paper reflects those parts of the ProCoS project ..."
Abstract
-
Cited by 10 (7 self)
- Add to MetaCart
This paper reflects those parts of the ProCoS project
Southampton's Portable Occam Compiler (SPOC)
- Proceedings of WoTUG-17: Progress in Transputer and occam Research, volume 38 of Transputer and occam Engineering
, 1994
"... The occam programming language provides a natural and concise syntax for specifying compositions of processes. occam has many advantages: it has primitive constructs supporting concurrency, it lends itself to distributed execution, it has a strong formal basis and it supports secure programming. occ ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
The occam programming language provides a natural and concise syntax for specifying compositions of processes. occam has many advantages: it has primitive constructs supporting concurrency, it lends itself to distributed execution, it has a strong formal basis and it supports secure programming. occam is an excellent language for embedded systems and high-performance computing. To date however, the only mature occam compilers are for the transputer processor and this has restricted the exploitation of the language. This paper describes a compilation system which allows occam programs to be supported on industry-standard platforms, as typified by the Unix work-station. Compilation is achieved by translating occam source into C and then using native C compilers to generate the target code. This approach allows a portable occam compilation system to be produced and allows back-end optimization to be performed by the C compiler in a manner optimized to the target processor. The implementa...
Specification Architecture Illustrated in a Communications Context
- Computer Networks and ISDN Systems
, 1997
"... The concept of specification architecture is introduced, and its importance is emphasised. Three important architectural principles are offered as a way of achieving a satisfactory specification architecture: modularity, generality and simplicity. These are supported by subsidiary techniques that ..."
Abstract
-
Cited by 6 (6 self)
- Add to MetaCart
The concept of specification architecture is introduced, and its importance is emphasised. Three important architectural principles are offered as a way of achieving a satisfactory specification architecture: modularity, generality and simplicity. These are supported by subsidiary techniques that realise them. Criteria are identified to evaluate successful application of the techniques and conformance to the principles. The approach is illustrated throughout with the example of a message switch, culminating in a larger case study based on the work of the PANGLOSS project to design a high-speed message switch. Keywords: architecture, architectural principle, communications architecture, message switch, specification, specification architecture 1 Introduction 1.1 Specification Architecture Except for completely trivial specifications, a specification necessarily has a significant structure -- its specification architecture. Even non-constructive specifications have an architec...

