Results 1 - 10
of
48
Concurrent Programming in ERLANG
, 1993
"... Syntax Notation One (ASN.1), Recommendation X.208, Geneva, Switzerland. [13] CCITT Specification of Basic Encoding Rules (BER for Abstract Syntax One (ASN.1), Recommendation X.209, Geneva, Switzerland. [14] Gray, Jim and Reuter, Andreas Transaction Processing Concepts and Techniques, Morgan Kaufmann ..."
Abstract
-
Cited by 87 (0 self)
- Add to MetaCart
Syntax Notation One (ASN.1), Recommendation X.208, Geneva, Switzerland. [13] CCITT Specification of Basic Encoding Rules (BER for Abstract Syntax One (ASN.1), Recommendation X.209, Geneva, Switzerland. [14] Gray, Jim and Reuter, Andreas Transaction Processing Concepts and Techniques, Morgan Kaufmann Publishers, 1993. 143 144 Bibliography ...
Implementation of the typed call-by-value λ-calculus using a stack of regions
- In ACM Symposium on Principles of Programming Languages
, 1994
"... We present a translation scheme for the polymorphically typed call-by-value λ-calculus. All runtime values, including function closures, are put into regions. The store consists of a stack of regions. Region inference and effect inference are used to infer where regions can be allocated and de-alloc ..."
Abstract
-
Cited by 53 (0 self)
- Add to MetaCart
We present a translation scheme for the polymorphically typed call-by-value λ-calculus. All runtime values, including function closures, are put into regions. The store consists of a stack of regions. Region inference and effect inference are used to infer where regions can be allocated and de-allocated. Recursive functions are handled using a limited form of polymorphic recursion. The translation is proved correct with respect to a store semantics, which models a regionbased run-time system. Experimental results suggest that regions tend to be small, that region allocation is frequent and that overall memory demands are usually modest, even without garbage collection. 1
Formal program development in Extended ML for the working programmer
, 1991
"... Extended ML is a framework for the formal development of programs in the Standard ML programming language from high-level specifications of their required input/output behaviour. It strongly supports the development of modular programs consisting of an interconnected collection of generic and reusab ..."
Abstract
-
Cited by 34 (10 self)
- Add to MetaCart
Extended ML is a framework for the formal development of programs in the Standard ML programming language from high-level specifications of their required input/output behaviour. It strongly supports the development of modular programs consisting of an interconnected collection of generic and reusable units. The Extended ML framework includes a methodology for formal program development which establishes a number of ways of proceeding from a given specification of a programming task towards a program. Each such step gives rise to one or more proof obligations which must be proved in order to establish the correctness of that step. This paper is intended as a user-oriented summary of the Extended ML language and methodology. Theoretical technicalities are avoided whenever possible, with emphasis placed on the practical aspects of formal program development. An extended example of a complete program development in Extended ML is included.
A Theory of Stack Allocation in Polymorphically Typed Languages
, 1993
"... We present a stack-allocation scheme for the call-by-value lambda calculus typed according to Milner's polymorphic type discipline. All the values a program produces, including function closures, are put into regions at runtime. Regions are allocated and deallocated in a stack-like manner. Region in ..."
Abstract
-
Cited by 23 (5 self)
- Add to MetaCart
We present a stack-allocation scheme for the call-by-value lambda calculus typed according to Milner's polymorphic type discipline. All the values a program produces, including function closures, are put into regions at runtime. Regions are allocated and deallocated in a stack-like manner. Region inference and effect inference is used to infer where regions can be allocated and deallocated. By allowing a limited form of polymorphic recursion in region types, the region inference is able to distinguish between the life-times of different invocations of a function, even when the function is recursive. The region analysis is eager in its attempt to reclaim memory as quickly as possible. The main result of this report is that region inference is safe, a result which entails that regions really can be deallocated, when region inference says they can. We give detailed proofs of this claim, which (in various forms) has been advanced several times in the literature. An algorithm for implementi...
Interface-Based Protocol Specification of Open Systems using PSL
, 1994
"... PSL is a framework for describing dynamic and architectural properties of open systems. PSL extends established interface-based tactics for describing the functional properties of open systems to the realm of protocol description. PSL specifications consist of logical and temporal rules relating sit ..."
Abstract
-
Cited by 23 (0 self)
- Add to MetaCart
PSL is a framework for describing dynamic and architectural properties of open systems. PSL extends established interface-based tactics for describing the functional properties of open systems to the realm of protocol description. PSL specifications consist of logical and temporal rules relating situations, each of which describes potential states with respect to instances of interfaces, their attributes, and the issuance and reception of events. PSL accommodates refinement and extensibility of specifications along the three dimensions of interfaces, situations, and orderings. A specialized form, PSL/IDL describes protocols in CORBA systems. 1 Introduction An open system, in the technical sense [28, 1, 63] (not necessarily the commercial sense) is encapsulated, reactive, spatially extensible, and temporally extensible: Encapsulation. An open system is composed of possibly many components, each described by one or more public interfaces along with an otherwise inaccessible implementa...
Extended ML: Past, present and future
- PROC. 7TH WORKSHOP ON SPECIFICATION OF ABSTRACT DATA TYPES, WUSTERHAUSEN. SPRINGER LNCS 534
, 1991
"... An overview of past, present and future work on the Extended ML formal program development framework is given, with emphasis on two topics of current active research: the semantics of the Extended ML specification language, and tools to support formal program development. ..."
Abstract
-
Cited by 22 (8 self)
- Add to MetaCart
An overview of past, present and future work on the Extended ML formal program development framework is given, with emphasis on two topics of current active research: the semantics of the Extended ML specification language, and tools to support formal program development.
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,...
Cohesion Metrics
- In 8 th International Quality Week (San Francisco, May 29th
, 1995
"... We consider ways of measuring the cohesion of program fragments based upon techniques for program slicing, following the work of Ott et al [12, 2, 13, 11, 10]. The approach is based on the idea that the intersection of a program's slices represents that part of the fragment which is cohesive. We pro ..."
Abstract
-
Cited by 11 (10 self)
- Add to MetaCart
We consider ways of measuring the cohesion of program fragments based upon techniques for program slicing, following the work of Ott et al [12, 2, 13, 11, 10]. The approach is based on the idea that the intersection of a program's slices represents that part of the fragment which is cohesive. We produce cohesion metrics that are structurally identical to those of Ott and Thuss [13], the difference is that we consider different ways of measuring the significance of the intersection of a program's slices. We introduce expression metrics, to calculate the significance of the code in the intersection of slices, arguing that this approach may provide better answers than the `Lines of Code' approach implicit in much of the literature [12, 10, 13]. The substitution of the `Lines of Code' metric with alternative metrics, within the metrics defined by Ott and Thuss, motivates the consideration of metrics as higher--order functions, expressed in a pure functional programming language. This provides us with many convenient notational conventions with which to construct new metrics by partial application and instantiation of function--valued parameters, within such higher--order metrics. We also raise some new issues concerning the computability of a cohesion metric, based upon program slices, indicating that the approach may, in some cases give an over--large value for cohesion. 1
Creation of Views for Reuse of Software with Different Data Representations
- IEEE Transactions on Software Engineering
, 1997
"... Software reuse is inhibited by the many different ways in which equivalent data can be represented. We describe methods by which views can be constructed semiautomatically to describe how application data types correspond to the abstract types that are used in numerical generic algorithms. Given ..."
Abstract
-
Cited by 10 (2 self)
- Add to MetaCart
Software reuse is inhibited by the many different ways in which equivalent data can be represented. We describe methods by which views can be constructed semiautomatically to describe how application data types correspond to the abstract types that are used in numerical generic algorithms. Given such views, specialized versions of the generic algorithms that operate directly on the application data can be produced by compilation. This enables reuse of the generic algorithms for an application with minimal effort. Graphical user interfaces allow views to be specified easily and rapidly. Algorithms are presented for deriving, by symbolic algebra, equations that relate the variables used in the application data to the variables needed for the generic algorithms. Arbitrary application data structures are allowed. Units of measurement are converted as needed. These techniques allow reuse of a single version of a generic algorithm for a variety of possible data representations and...

