top-down design and programming methods have become well established in both commercial and academic environments. However, a programmer using such methods faces a number of organizational difficulties. This paper des...
详细信息
top-down design and programming methods have become well established in both commercial and academic environments. However, a programmer using such methods faces a number of organizational difficulties. This paper describes a software tool, written in Pascal, which eliminates these difficulties. It allows a programmer to interactively develop programs in a top-down fashion.
Graph theory is used to model program control structures rigorously as flowgraphs. Formal methods are defined which allow the classification and reconstruction of flowgraphs in terms of an arbitrary set of primitives....
详细信息
Graph theory is used to model program control structures rigorously as flowgraphs. Formal methods are defined which allow the classification and reconstruction of flowgraphs in terms of an arbitrary set of primitives. The criterion of classification sheds new light on a classical graph-theoretic characterisation of D -structuredness, and provides an extension of this characterisation in the case when the notion of structuredness is generalised.
This paper discusses how structured programming methodology has been introduced into a large production programming organization using an integrated but flexible approach. It next analyzes the advantages and disadvant...
详细信息
A program development system (PDS) should support a smooth transition between design, development, debugging, testing and final production of a software system. Man-machine interaction, though necessary, should not al...
详细信息
A program development system (PDS) should support a smooth transition between design, development, debugging, testing and final production of a software system. Man-machine interaction, though necessary, should not allow the user to modify the program or its execution state in an unstructured way; rather, disciplined interaction should be enforced by the PDS. After a review of the most desirable features of a PDS, the underlying philosophy of SIMPLE, a PDS which supports the development of Pascal programs, is introduced. The general structure of the SIMPLE system and the basic implementation choices are also discussed.
The tasking model of OpenMP 4.0 supports both nesting and the definition of dependences between sibling tasks. A natural way to parallelize many codes with tasks is to first taskify the high-level functions and then t...
详细信息
ISBN:
(纸本)9781538639146
The tasking model of OpenMP 4.0 supports both nesting and the definition of dependences between sibling tasks. A natural way to parallelize many codes with tasks is to first taskify the high-level functions and then to further refine these tasks with additional subtasks. However, this top-down approach has some drawbacks since combining nesting with dependencies usually requires additional measures to enforce the correct coordination of dependencies across nesting levels. For instance, most non-leaf tasks need to include a taskwait at the end of their code. While these measures enforce the correct order of execution, as a side effect, they also limit the discovery of parallelism. In this paper we extend the OpenMP tasking model to improve the integration of nesting and dependencies. Our proposal builds on both formulas, nesting and dependencies, and benefits from their individual strengths. On one hand, it encourages a top-down approach to parallelizing codes that also enables the parallel instantiation of tasks. On the other hand, it allows the runtime to control dependencies at a fine grain that until now was only possible using a single domain of dependencies. Our proposal is realized through additions to the OpenMP task directive that ensure backward compatibility with current codes. We have implemented a new runtime with these extensions and used it to evaluate the impact on several benchmarks. Our initial findings show that our extensions improve performance in three areas. First, they expose more parallelism. Second, they uncover dependencies across nesting levels, which allows the runtime to make better scheduling decisions. And third, they allow the parallel instantiation of tasks with dependencies between them. Index Terms-computer languages;runtime library;OpenMP
Software engineering is presented as a new branch of the engineering disciplines. The tools and techniques of the profession are examined in an attempt to resolve definitional ambiguities and describe the concepts or ...
详细信息
Software engineering is presented as a new branch of the engineering disciplines. The tools and techniques of the profession are examined in an attempt to resolve definitional ambiguities and describe the concepts or attitudes generally associated with three specific programming methodologies. Language properties supportive of the methodologies are investigated. The professional tools and language characteristics are evaluated in terms of their effect on DOD software.
暂无评论