Recognizing that an error condition is an intrinsic part of the abstract type to which the operation that detects the condition belongs, an attempt is made to specify and implement error condition detection and handli...
详细信息
Recognizing that an error condition is an intrinsic part of the abstract type to which the operation that detects the condition belongs, an attempt is made to specify and implement error condition detection and handling within the framework of the Alphard form, a construct for encapsulation of data type specification and implementation. The essence of the problem is this: while error condition detection is done by the operation in the form, only the user of the type can determine the meaning of the condition with respect to the way the type is used. Thus, the user must be able to specify the handler. Unfortunately, programming the handler often requires access to encapsulated implementation details which are hidden from the user. After discussing the general issues of exception handling, modularity, and abstract data types, this paper proposes a solution for one category of exceptions, namely errors. Specifically an externally visible condition name is the link between an error's occurrence and some externally visible but internally programmed handler for it. Issues raised by this partial solution, including those of proof rules, are discussed.
structured reversible flowchart languages is a class of imperative reversible programming languages allowing for a simple diagrammatic representation of control flow built from a limited set of control flow structures...
详细信息
structured reversible flowchart languages is a class of imperative reversible programming languages allowing for a simple diagrammatic representation of control flow built from a limited set of control flow structures, as ordinary structured flowcharts allow for conventional languages. This class includes the reversible programming language Janus (without recursion), as well as more recently developed reversible programming languages such as R-CORE and R-WHILE. In the present paper, we develop a categorical foundation for this class of languages based on inverse categories with joins. We generalize the notion of extensivity of restriction categories to one that may be accommodated by inverse categories, and use the resulting decision maps to give a reversible representation of predicates and assertions. This leads to a categorical semantics for structured reversible flowcharts, from which we show that a program inverter can be extracted. Finally, we exemplify our approach by the development of a small structured reversible flowchart language, use our framework to both straightforwardly give it semantics and derive fundamental theorems about it, and discuss further applications of decisions in reversible programming.
For nearly two decades, the development of computerized information systems has struggled for acceptable compromises between the unattainable “total system” and the unacceptable separate applications. Integration of...
详细信息
For nearly two decades, the development of computerized information systems has struggled for acceptable compromises between the unattainable “total system” and the unacceptable separate applications. Integration of related applications is essential if the computer is to be exploited fully, yet relative simplicity is necessary for systems to be implemented in a reasonable time-scale. This paper discusses a system being progressively developed from minimal beginnings but which, from the outset, had a highly flexible and fully integrated system basis. The system is for batch processing, but can accommodate on-line data input; it is similar in its approach to many transaction-processing real-time systems.
The feasibility of using macros to compile a linear assembly language is well established. A cross assembler has been implemented, via macros, for an assembly language, SCRAM, which embodies high-level language featur...
详细信息
The feasibility of using macros to compile a linear assembly language is well established. A cross assembler has been implemented, via macros, for an assembly language, SCRAM, which embodies high-level language features such as user-controlled symbol scope and nested DO and IF/THEN/ELSE control structutes. Difficulties arose in implementation primarily from the inconvenience of managing assembly-time data
A general computer aided description environment for the treatment of discrete problems, based on a concise structure for both development and application levels, is described and applied to the finite element method....
详细信息
A general computer aided description environment for the treatment of discrete problems, based on a concise structure for both development and application levels, is described and applied to the finite element method. Its characteristics reveal its great ability to welcome in an evolutive way a wide range of physical models and numerical methods, with any coupling of them. It is therefore adapted to various activities, such as research, collaboration, education, training and industrial studies.
Choosing the right program structures can lead to better programs, says Joshua Turner. He advocates modular design to make large programs more manageable. Turner reviews the possible structural relationships between t...
详细信息
Choosing the right program structures can lead to better programs, says Joshua Turner. He advocates modular design to make large programs more manageable. Turner reviews the possible structural relationships between the modules of a program and generates a tentative morphology of program structure types. He concludes that, with some exceptions, the hypothetical pure tree structure is the best choice for most data processing applications.
Dynamic slicing helps to identify the program statements that affect a given criterion-point. Existing precise slicing algorithms, like the Limited-Preprocessing (LP) algorithm by Zhang et al. (ICSE 2003), operate on ...
详细信息
ISBN:
(纸本)1595934804;9781595934802
Dynamic slicing helps to identify the program statements that affect a given criterion-point. Existing precise slicing algorithms, like the Limited-Preprocessing (LP) algorithm by Zhang et al. (ICSE 2003), operate on stored execution trace, requires much time and space if the trace is large even if the source program is small. In this paper we present a forward dynamic slicing algorithm for structured programs that reduces the overhead of slicing in the long run. For long running programs that iterates heavily on some loop, our algorithm is expected to perform faster by re-using the already computed dependences in the loop. Copyright 2007 ACM.
Current interests in software engineering have posed serious questions about the evolution of programs and languages. Computer programs are not simply collections of statements;they involve specific structural relatio...
详细信息
A data validation program designed for flexibility and user-modification is presented. It is assumed that the data to be validated consist of packets; i.e., groups of records with a common value in a record-linking fi...
详细信息
A data validation program designed for flexibility and user-modification is presented. It is assumed that the data to be validated consist of packets; i.e., groups of records with a common value in a record-linking field. Acceptance or rejection of data is on a packet basis. Individual field validation is specified by user-supplied tables. Multiple field checking and field interaction checking on both and intra-record and an inter-record basis may be specified by user-supplied subprograms. The program is written in PL/I using structured programming techniques. Further modifications such as record size and key positions are possible at pre-processor time.
structured program editors can lower the entry barrier for beginning computer science students by preventing syntax errors. However, when editors force programs to be executable after every edit, a rigid development p...
详细信息
ISBN:
(纸本)0769524435
structured program editors can lower the entry barrier for beginning computer science students by preventing syntax errors. However, when editors force programs to be executable after every edit, a rigid development process results. We explore the use of a separate edit-time grammar that is more permissive than the runtime grammar. This helps achieve a balance between structured editing and flexibility, particularly in live development environments. JPie is a graphical programming environment that applies this separation to the live development of Java applications. We present the design goals for JPie's edit-time grammar and describe how its implementation supports a balance between structure and flexibility. As further illustration of the benefits of a relaxed edit-time grammar, we present "mixed-mode editing," an integration of textual and graphical editing for added flexibility.
暂无评论