Chapter 9, Object-Oriented Programming: Inheritance, and Chapter 10, Object-Oriented Programming: Polymorphism, introduce inheritance and polymorphism, respectivelytwo additional key object-oriented programming technologies.
Items in search results
Previous page. Table of content. Next page. Operator Precedence Chart A. Operator Precedence Appendix B. Keywords and Reserved Words Appendix C. Keywords and Reserved Words Appendix D. Primitive Types Appendix D. Primitive Types Appendix E.
Mappings Make Data Processing Go ’Round
Introduction G. Normally, a maintainer involved in reverse-engineering activities may get some guide to the functionality of a strange application by examining the inputs and outputs of sub-parts, and relating these to the data structure diagrams JSD, SSADM, etc.
In plain words, one sees that an A is turned into a B by code segment P just by looking at the lists of data declarations at the head of the code, making sense of the names used, and spotting which are used where. Handbook plus Reasoning Tool. Code-analysis by hand may be an arduous and error-prone task.
An important component of this method is the separation of the code into objects and classes. Automatic Tools.
The Reverse-Engineering Process. A similar process often seems to be at work in a programmers brain; straightforward concepts become hopelessly scrambled in translation into Fortran or Cobol for a variety of reasons, and it is not feasible to attempt to unscramble them directly. There is scope at all stages for the partial or full application of intelligent human guidance, but it is also possible to conduct the reverse-engineering process entirely automatically.
The methods described in section 4 can be used to further simplify these functional descriptions if necessary, the aim being to extract as much information about the relationships between the program variables as possible. An example follows the description of the technique itself. The original code can then be amended to contain single instances objects of the class instead of widely separated groups of apparently unconnected statements applied to scattered data.yxetexuvit.tk
Mappings Make Data Processing Go ’Round | SpringerLink
In the language of OBJ [8, Goguen and Winkler, ], this means we avoid the need to import extra implicit logical theories into the context. The class abstraction process is as follows: 1. Checking the validity of this conjecture is actually not a major piece of work since it only requires the examination of a few obviously related statements.
Checking these conditions has to be done with the aid of the reasoning tool based on the code-representation language. Error Detection. If the checks fail then we either weaken or change the invariant property or conclude that x is not really a component of a structure built on f.
In practice there will be imperfections in the correlation between subordinate and main variables, in that the programmer may not update associated variables in line with the main variables when this is in fact logically necessary. We look for two things: 1. Process Boundaries. We replace where possible the original code statements by the corresponding calls to new objects, as determined by following the procedure in 2. Using a logical reasoning tool in this way is a well-documented procedure [11, Gries, ] and involves working back from the logically last statements of the process, postulating and checking invariants where necessary, aided by heuristics [3, Breuer and Lano, ], [11, Gries, ].
Each non-compound statement will have a standard predicate associated with it i. If no simple guess is made by the engineer, the tool just generates a rather uninformative generic statement but an accurate one! The semantics of the intermediate language used has been given in a precise axiomatic form [14, Lano, ], [3, Breuer and Lano, ], so determining the functionality is simply a matter of applying pre- determined rules. Here we do a little more cleaning, by hand.
There are also extra constants and ags. The data division of the example Cobol program 3. First Paragraph! The boolean ag eof-table is maintained to indicate if table has been exhausted or not. Second Paragraph! The boolean ag eof-trans shows whether trans has yet been exhausted or not. Third Paragraph! Without these cookies, we can't provide services to you. These cookies allow us to monitor OverDrive's performance and reliability. They alert us when OverDrive services are not working as expected.
Without these cookies, we won't know if you have any performance-related issues that we may be able to address. These cookies help us understand user behavior within our services. For example, they let us know which features and sections are most popular. This information helps us design a better experience for all users.