The first author has been invited to reminisce over almost 20 years of his research into and application of formal methods in software development. The paper deals with model-oriented methods. The title of this paper ...
详细信息
Aurora is a prototype or-parallel implementation of Prolog for shared memory multiprocessors. It supports the full Prolog language, thus being able to execute existing Prolog programs without any change. For some prog...
详细信息
ISBN:
(纸本)0262691477
Aurora is a prototype or-parallel implementation of Prolog for shared memory multiprocessors. It supports the full Prolog language, thus being able to execute existing Prolog programs without any change. For some programs, however, typically those relying on dynamic database handling, full compatibility with Prolog may cause unnecessary sequencing delays. Aurora therefore supports a number of extensions to Prolog, including asynchronous versions of all side-effect predicates. Programs often rely on dynamic predicates because of bad programming style. There are, however, applications where dynamic predicates are the most natural way of expressing a solution. In this paper we look at a simple, yet interesting such application: a program for playing the game of mastermind. This is a typical example of a search using a continually changing knowledge base. We first look at sequential search strategies for playing the game of mastermind. We then proceed to discuss the problems arising when these strategies are executed in parallel, with asynchronous database handling. We present several versions of the mastermind program, discussing various synchronization techniques and outlining proposals for higher level synchronization primitives to be incorporated into Aurora. We discuss performance results for the presented programs using an experimental implementation of the synchronization primitives.
How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions ...
详细信息
ISBN:
(纸本)0596510047;9780596510046
How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes. This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules. Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International.
The propensity to make programming errors and the rates of error detection and correction are dependent on program complexity. Knowledge of these relationships can be used to avoid error-prone structures in software d...
详细信息
Certain software abstractions help to automate load balancing during various math-physics calculations on a team of concurrently executing processors. These abstractions have been tested on a vortex method for computa...
详细信息
Certain software abstractions help to automate load balancing during various math-physics calculations on a team of concurrently executing processors. These abstractions have been tested on a vortex method for computational fluid dynamics. Experiments exhibited good parallel speedups of 24 and 3.6, respectively, on 32 processors of the Intel iPSC-1-a message-passing hypercube architecture-and on 4 processors of a Cray X-MP-a shared-memory vector architecture. The abstractions should apply to diverse applications, including finite difference methods, and to diverse architectures without requiring that the application be reprogrammed extensively for each new architecture.
Backtracking is a well-known technique for solving combinatorial problems. It is of interest to programming methodologists because 1) correctness of backtracking programs may be difficult to ascertain experimentally a...
详细信息
Development of application-specific wireless monitoring systems can benefit from concept reuse and design patterns can form the enabling medium for such reuse. This paper proposes a set of five fundamental node-level ...
详细信息
ISBN:
(纸本)9781424492893
Development of application-specific wireless monitoring systems can benefit from concept reuse and design patterns can form the enabling medium for such reuse. This paper proposes a set of five fundamental node-level patterns that resolve common problems when programming low-power embedded wireless sensing devices. The pattern set forms a framework that is aimed at ensuring simple and robust deployed systems. A qualitative evaluation is performed by identifying key design traits from several successfully deployed systems and linking these to elements of the framework.
Datatype-generic programs are programs that are parameterised by a datatype. Designing datatype-generic programs brings new challenges and new opportunities. We review the allegorical foundations of a methodology of d...
详细信息
ISBN:
(纸本)3540354662
Datatype-generic programs are programs that are parameterised by a datatype. Designing datatype-generic programs brings new challenges and new opportunities. We review the allegorical foundations of a methodology of designing datatype-generic programs. The effectiveness of the methodology is demonstrated by an extraordinarily concise proof of the well-foundedness of a datatype-generic occurs-in relation.
The main purposes in writing this paper are to discuss the importance of formal specifications and to survey a number of promising specification techniques. The role of formal specifications both in proofs of program ...
详细信息
暂无评论