This paper defines exception conditions, discusses the requirements exception handling language features must satisfy, and proposes some new language features for dealing, with exceptions in an orderly and reliable wa...
详细信息
This paper defines exception conditions, discusses the requirements exception handling language features must satisfy, and proposes some new language features for dealing, with exceptions in an orderly and reliable way. The proposed language features serve to highlight exception handling issues by showing how deficiencies in current approaches can be remedied. [ABSTRACT FROM AUTHOR]
To estimate the cost of developing a system and to increase programmer efficiency, the factors affecting program development effort and programmer productivity need to be identified. However, the results of previous ...
详细信息
To estimate the cost of developing a system and to increase programmer efficiency, the factors affecting program development effort and programmer productivity need to be identified. However, the results of previous studies are questionable due to methodological flaws or failure to base them on established theory. Therefore, a filed study was conducted to assess the feasibility of conducting controlled studies of the programming process. COBOL programs from 3 commercial organizations were used to investigate the effects of programming style and programmer skill on the effort required to develop programs and on programming productivity. Using program size as a control variable, results support the idea that using disciplined approaches and well-defined variables leads to more readily interpretable and more conclusive results. However, the study did not control for such factors as quality of the design specifications and the systems support available to programmers during development.
A programming situation different from an exit on a condition, but where the effect of a GOTO statement is still necessary, is examined. A notation for expressing the desired effect and s mechanism for implementation ...
详细信息
A programming situation different from an exit on a condition, but where the effect of a GOTO statement is still necessary, is examined. A notation for expressing the desired effect and s mechanism for implementation are proposed.
As the complexity and size of programs increase, the programmer is challenged with the task of organizing his program in a manner which will enhance intellectual manageability. Thus, the structure and style are critic...
详细信息
As the complexity and size of programs increase, the programmer is challenged with the task of organizing his program in a manner which will enhance intellectual manageability. Thus, the structure and style are critical in regards to writing programs and verifying their correctness. In recent years, considerable emphasis has been placed on the correctness of programs and techniques for engineering them to be correct. However, more emphasis should be placed on designing languages which facilitate constructing correct programs. In an effort to partially address this problem, a language is described which permits users the convenient development of well-structured programs that are easy to read and understand, easy to correct (debug) and modify, and easy to verify the correctness of the program. The language presented permits the use of decision tables for expressing complex logic.
There has been a vast amount of debate on the goto issue: i.e., the issue whether to use or not to use the goto statement initiated by Dijkstra in his famous Letter to the Editor of CACM and his proposal of 'Struc...
详细信息
There has been a vast amount of debate on the goto issue: i.e., the issue whether to use or not to use the goto statement initiated by Dijkstra in his famous Letter to the Editor of CACM and his proposal of 'structured programming'. However, except for the goto-less programming style by Mills based on theoretical results on the expressibility of control flow diagrams, there have hardly been any scientific accounts on this issue from Dijkstra's own viewpoint of the correctness of programs. In this work, we reconsider this seemingly old-tired issue from the viewpoint of Hoare Logic, the most well-known framework for correctness proof of programs. We show that, in two cases, the with-goto programming styles are more suitable for proving correctness in Hoare Logic than the corresponding without-goto ones;that is, in each of two cases, the without-goto style requires more complicated assertions in the proof-outline than the with-goto one. The first case is on the use of the goto statement for escaping from nested loops and the second case is on the use of the goto statement for expressing state transitions in programming through the finite state machine model. Hence, in both cases, the use of the goto statement can be justified from the viewpoint of the correctness proof in Hoare Logic. (c) 2005 Elsevier B.V. All rights reserved.
Advanced computer architectures rely mainly on compiler optimizations for parallelization, vectorization, and pipelining. Efficient code generation is based on a control dependence analysis to find the basic blocks an...
详细信息
Advanced computer architectures rely mainly on compiler optimizations for parallelization, vectorization, and pipelining. Efficient code generation is based on a control dependence analysis to find the basic blocks and to determine the regions of control. However, unstructured branch statements, such as jumps and goto's, render the control flow analysis difficult, time-consuming, and result in poor code generation. Branches are part of many programming languages and occur in legacy and maintenance code as well as in assembler, intermediate languages, and byte code. A simple and effective technique is presented to convert unstructured branches into hammock graph control structures. Using three basic transformations, an equivalent program is obtained in which all control statements have a well-defined scope. In the interest of predication and branch prediction, the number of control variables has been minimized, thereby allowing a limited code replication. The correctness of the transformations has been proven using an axiomatic proof rule system. With respect to previous work, the algorithm is simpler and the branch conditions are less complex, making the program more readable and the code generation more efficient. Additionally, hammock graphs define single entry single exit regions and therefore allow localized optimizations. The restructuring method has been implemented into the parallelizing compiler FPT and allows to extract parallelism in unstructured programs. The use of hammock graph transformations in other application areas such as vectorization, decompilation, and assembly program restructuring is also demonstrated.
A Software environment for the treatment of discrete problems is presented and used for teaching the finite element method in electromagnetism. It makes use of a user-friendly data structure which gives students a gre...
详细信息
A Software environment for the treatment of discrete problems is presented and used for teaching the finite element method in electromagnetism. It makes use of a user-friendly data structure which gives students a great freedom in testing in an evolutive way various numerical techniques on practical problems, thanks to a total control on all the components of the modeling process. By this way, the transition from theory to practice is made quite directly and easily.
The article discusses the similarity of software architecture and musical architecture in terms of patterns. It is stated that a well-structured software-intensive systems is full of patterns. Architectural patterns h...
详细信息
The article discusses the similarity of software architecture and musical architecture in terms of patterns. It is stated that a well-structured software-intensive systems is full of patterns. Architectural patterns have the same character as song structure, design patterns and musical motifs are at the same level of abstraction, programmatic idioms and musical rhythms and scales are isomorphic. By comparing musical and software patterns, the author elaborates the purposes and forms of patterns. He cites that architectural and design patterns make software-intensive systems easier to understand and adapt to because of their regularity and simplicity.
Object-oriented design facilitates the implementation of large systems, and is suitable for constructing concurrent systems. This paper shows that the Jackson system development (JSD) method caters for object-oriented...
详细信息
Object-oriented design facilitates the implementation of large systems, and is suitable for constructing concurrent systems. This paper shows that the Jackson system development (JSD) method caters for object-oriented specification of systems which can be suitably transformed for concurrent implementation using Ada and similar languages.
A formal method is presented for testing data processing software, which was designed utilizing the Jackson structured programming (JSP) method. This method offers the software engineer a set of rules that creates fu...
详细信息
A formal method is presented for testing data processing software, which was designed utilizing the Jackson structured programming (JSP) method. This method offers the software engineer a set of rules that creates functional test cases from the program specification. To apply the rules, it is necessary to translate the program specification from its English prose-like form into a rigorous formal notation that precisely and unambiguously describes the testing requirements of the software. The functional testing method is shown in formal terms to simplify its use and to allow it to be applied as part of the standard JSP design process. The testing process involves: 1. creating a basic framework of iterations and selections, 2. identifying the number of tests that need to be done, 3. inspecting the tables to identify other test cases that need to be covered, and 4. running the tests through the program. A fully worked example of the method is offered to demonstrate how the software engineer can apply this method when presented with a standard prose program specification.
暂无评论