Results 1 - 10
of
36
Units: Cool Modules for HOT Languages
, 1998
"... A module system ought to enable assembly-line programming using separate compilation and an expressive linking language. Separate compilation allows programmers to develop parts of a program independently. A linking language gives programmers precise control over the assembly of parts into a whole. ..."
Abstract
-
Cited by 174 (23 self)
- Add to MetaCart
A module system ought to enable assembly-line programming using separate compilation and an expressive linking language. Separate compilation allows programmers to develop parts of a program independently. A linking language gives programmers precise control over the assembly of parts into a whole. This paper presents models of program units, MzScheme's module language for assembly-line programming. Units support separate compilation, independent module reuse, cyclic dependencies, hierarchical structuring, and dynamic linking. The models explain how to integrate units with untyped and typed languages such as Scheme and ML.
An automated framework for structural test-data generation
- Proceedings of the International Conference on Automated Software Engineering; IEEE
, 1998
"... Structural testing criteria are mandated in many software development standards and guidelines. The process of generating test-data to achieve 100 % coverage of a given structural coverage metric is labour intensive and expensive. This paper presents an approach to automate the generation of such te ..."
Abstract
-
Cited by 62 (12 self)
- Add to MetaCart
Structural testing criteria are mandated in many software development standards and guidelines. The process of generating test-data to achieve 100 % coverage of a given structural coverage metric is labour intensive and expensive. This paper presents an approach to automate the generation of such test-data. The test-data generation is based on the application of a dynamic optimisation-based search for the required test-data. The same approach can be be generalised to solve other test-data generation problems. Three such applications are discussed { boundary value analysis, assertion/run-time exception testing and component re-use testing. Aprototype tool-set has been developed to facilitate the automatic generation of test-data for these structural testing problems. The results of preliminary experiments using this technique and the prototype tool-set are presented and show the e ciency and e ectiveness of this approach. 1
A Framework for Event-Based Software Integration
- ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
, 1996
"... ..."
Experiences with the PEPA Performance Modelling Tools
- IEE Proceedings - Software
, 1998
"... The PEPA language [1] is supported by a suite of modelling tools which assist in the solution and analysis of PEPA models. The design and development of these tools have been influenced by a variety of factors, including the wishes of other users of the tools to use the language for purposes which w ..."
Abstract
-
Cited by 32 (23 self)
- Add to MetaCart
The PEPA language [1] is supported by a suite of modelling tools which assist in the solution and analysis of PEPA models. The design and development of these tools have been influenced by a variety of factors, including the wishes of other users of the tools to use the language for purposes which were not anticipated by the tool designers. In consequence, the suite of PEPA tools has adapted to attempt to serve the needs of these users while continuing to support the language designers themselves. In this paper we report on our use of the PEPA tools and give some advice gained from our experiences. 1 Introduction PEPA (Performance Evaluation Process Algebra) extends classical process algebra with the capacity to assign rates to the activities which are described in an abstract model of a system. Taken together, the information about the rates of performance of activities and the definition of the outcome of performing an activity specify a stochastic process and thus PEPA is said to b...
Equational Reasoning for Linking with First-Class Primitive Modules
- In European Symposium on Programming
, 2000
"... . Modules and linking are usually formalized by encodings which use the -calculus, records (possibly dependent), and possibly some construct for recursion. In contrast, we introduce the m-calculus, a calculus where the primitive constructs are modules, linking, and the selection and hiding of mo ..."
Abstract
-
Cited by 26 (5 self)
- Add to MetaCart
. Modules and linking are usually formalized by encodings which use the -calculus, records (possibly dependent), and possibly some construct for recursion. In contrast, we introduce the m-calculus, a calculus where the primitive constructs are modules, linking, and the selection and hiding of module components. The m-calculus supports smooth encodings of software structuring tools such as functions (- calculus), records, objects (&-calculus), and mutually recursive definitions. The m-calculus can also express widely varying kinds of module systems as used in languages like C, Haskell, and ML. We prove the mcalculus is confluent, thereby showing that equational reasoning via the m-calculus is sensible and well behaved. 1 Introduction A long version of this paper [43] which contains full proofs, more details and explanations, and comparisons with more calculi (including the calculus of Ancona and Zucca [4]), is available at http://www.cee.hw.ac.uk/~jbw/papers/. 1.1 Support f...
Confluent Equational Reasoning for Linking with First-Class Primitive Modules
- In ESOP 2000 - European Symposium on Programming 2000, number 1782 in Lecture Notes in Computer Science
, 1999
"... Modules and linking are usually formalized by encodings which use the lambda calculus, records (possibly dependent), and possibly some construct for recursion. In contrast, we present the m-calculus, a calculus where the primitive constructs are modules, linking, and the selection and hiding of modu ..."
Abstract
-
Cited by 16 (3 self)
- Add to MetaCart
Modules and linking are usually formalized by encodings which use the lambda calculus, records (possibly dependent), and possibly some construct for recursion. In contrast, we present the m-calculus, a calculus where the primitive constructs are modules, linking, and the selection and hiding of module components. In addition to supporting equational reasoning about modules and linking, the m-calculus allows smooth encodings of software structuring tools such as the lambda calculus, mutually recursive definitions, records (including operations like extension and concatenation), and objects. The m-calculus is extremely well behaved --- we show not only that the m-calculus is confluent but also that it satisfies the strong finite developments property.
A Study of the Applicability of Existing Exception-Handling Techniques to Component-Based Real-Time Software Technology
- ACM Trans. Program. Lang. Syst
, 1998
"... this article differentiate the exception-handling needs of CB-RTS as compared to other software paradigms and can serve as a driving force for future research into exception-handling technology. ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
this article differentiate the exception-handling needs of CB-RTS as compared to other software paradigms and can serve as a driving force for future research into exception-handling technology.
From SPA models to programs
- Proceedings of the Fourth Annual Workshop on Process Algebra and Performance Modelling
, 1996
"... Stochastic process algebra models allow desired performance characteristics to be assessed during the design of complex software systems. We present a software development method which aims to ensure that these performance characteristics are attained by an implementation. At the heart of the develo ..."
Abstract
-
Cited by 9 (7 self)
- Add to MetaCart
Stochastic process algebra models allow desired performance characteristics to be assessed during the design of complex software systems. We present a software development method which aims to ensure that these performance characteristics are attained by an implementation. At the heart of the development method is a translation from a process algebra model into a program skeleton. 1 Introduction Stochastic process algebras (SPAs) are used to investigate the performance of systems which are composed of concurrently active communicating components. In this paper we consider the use of SPA models as vehicles for analysing and assessing alternative candidate designs for a software system which is to be constructed. Our contribution here is to propose a systematic method of advancing the construction of the system software once an initial SPA model has been selected as a suitable starting point. The aim of our method is to ensure that the performance investigation which has been conducted ...
Task Dependence Nets for Concurrent Systems with Ada 95 and Its Applications
- and Its Application, Proc. 1997 ACM TRI-Ada International Conference, St
, 1997
"... There are various dependence relationships holding between statements in a program as well as between components in a software system. In general, the dependence relationships are implicitly determined by control and data flows in the program and/or system. Determining various dependences in program ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
There are various dependence relationships holding between statements in a program as well as between components in a software system. In general, the dependence relationships are implicitly determined by control and data flows in the program and/or system. Determining various dependences in programs and/or systems and then representing them in some explicit forms are indispensable and crucial to many software development, maintenance, evolution, and reengineering activities. This paper presents a dependencebased representation, named task dependence net, for concurrent systems with Ada 95 and shows its various important applications in Ada software development, maintenance, evolution, and reengineering. Two arcclassified digraph representations, named nondeterministic parallel control-flow net and nondeterministic parallel definition-use net, are introduced to represent multiple threads of control flow and multiple threads of data flow in concurrent Ada programs. The five types of pri...
Supporting Ada 95 Passive Partitions in a Distributed Environment
- In Ada Europe
, 1997
"... . Ada 95 passive partitions, containing passive library units, provide the means to distribute data within a network of workstations. This paper shows how passive partitions can be implemented via distributed shared virtual memory (DSM). DSM provides the logical view of a portion of memory shared be ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
. Ada 95 passive partitions, containing passive library units, provide the means to distribute data within a network of workstations. This paper shows how passive partitions can be implemented via distributed shared virtual memory (DSM). DSM provides the logical view of a portion of memory shared between physically distributed workstations within a network. In this paper, we relate design issues and operational characteristics of DSM systems to the semantics of shared passive library units as specified in the Ada 95 distributed system annex. We designed and implemented such a DSM system, operating at the granularity of pages, in a portable fashion over POSIX threads. The DSM system establishes its own communication services and is completely independent of any Ada runtime system support. Protected objects are supported via a novel prioritized protocol for distributed mutual exclusion. We integrated the DSM system with the Gnu Ada Translator (Gnat) and its environment to support active...

