A Formal Automated Approach for Reverse Engineering Programs with Pointers

نویسندگان

  • Gerald C. Gannod
  • Betty H. C. Cheng
چکیده

Given a program S and a precondition Q, the strongest postcondition, denoted sp(S;Q), is defined as the strongest condition that holds after the execution of S, given that S terminates. By defining the formal semantics of each of the constructs of a programming language, a formal specification of the behavior of a program written using the given programming language can be constructed. In this paper we address the formal semantics of pointers in order to handle a realistic model of programming languages that incorporate the use of pointers. In addition, we present a tool for supporting the construction of formal specifications of programs that include the use of pointers.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An Automated Approach for Supporting Software Reuse via Reverse Engineering

Formal approaches to software reuse rely heavily upon specification matchingcriterion, where a search query using formal specifications is used to search a library of components indexed by specifications. In previous investigations, we addressed the use of formal methods and component libraries to support software reuse and construction of software based on component specifications. A difficult...

متن کامل

A Suite of Tools for Facilitating Reverse Engineering Using Formal Methods

As a program evolves, it becomes increasingly difficult to understand and reason about changes in source code. Eventually, if enough changes are made without a corresponding modification of the software documentation, reverse engineering and design recovery techniques must be used in order to understand the current behavior of a system. In our previous investigations, we described a formal tech...

متن کامل

Understanding Data Dependences in the Presence of Pointers

Understanding data dependences in programs is important for many software-engineering activities, such as program understanding, impact analysis, reverse engineering, and debugging. The presence of pointers, arrays, and structures can cause subtle and complex data dependences that can be difficult to understand. For example, in languages such as C, an assignment made through a pointer dereferen...

متن کامل

Using Informal and Formal Techniques for the Reverse Engineering of C Programs

Reverse engineering of program code is the process of constructing a higher level abstraction of an implementation in order to facilitate the understanding of a system that may be in a “legacy” or “geriatric” state. Changing architectures and improvements in programming methods, including formal methods in software development and objectoriented programming, have prompted a need to reverse engi...

متن کامل

Reverse Engineering and Reusing COBOL Programs: A Program Transformation Approach

Since the 1980s, software maintenance started to attract attention. Some progress has been made in using formal methods on software maintenance, especially on reverse engineering. This paper attempts to summarise some major advances in this area over the last one and a half decades. Firstly, we introduce program transformation techniques for software development and review the techniques used f...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1997