Formal Methods for Reverse Engineering Gate-Level Netlists

Author(s):  
Wenchao Li
1993 ◽  
Vol 5 (1) ◽  
pp. 13-35 ◽  
Author(s):  
K. Lano ◽  
P. T. Breuer ◽  
H. Haughton

2018 ◽  
Vol 2 (3) ◽  
pp. 214-224 ◽  
Author(s):  
Shahrzad Keshavarz ◽  
Cunxi Yu ◽  
Samaneh Ghandali ◽  
Xiaolin Xu ◽  
Daniel Holcomb

Author(s):  
GERALD C. GANNOD ◽  
BETTY H.C. CHENG

As software is increasingly used to control safety-critical systems, correctness becomes paramount. Formal methods in software development provide many benefits in the forward engineering aspect of software development. Reverse engineering is the process of constructing a high-level representation of a system from existing lower level instanti-ations of that system. Reverse engineering of program code into formal specifications facilitates the utilization of the benefits of formal methods in projects where formal methods may not have previously been used, thus facilitating the maintenance of safety-critical systems.


Author(s):  
M. P. WARD ◽  
K. H. BENNETT

There is a vast collection of operational software systems which are vitally important to their users, yet are becoming increasingly difficult to maintain, enhance, and keep up to date with rapidly changing requirements. For many of these so-called legacy systems, the option of throwing the system away and rewriting it from scratch is not economically viable. Methods are therefore urgently required which enable these systems to evolve in a controlled manner. The approach described in this paper uses formal proven program transformations, which preserve or refine the semantics of a program while changing its form. These transformations are applied to restructure and simplify the legacy systems and to extract higher-level representations. By using an appropriate sequence of transformations, the extracted representation is guaranteed to be equivalent to the code. The method is based on a formal wide spectrum language, called WSL, with an accompanying formal method. Over the last ten years we have developed a large catalog of proven transformations, together with mechanically verifiable applicability conditions. These have been applied to many software development, reverse engineering, and maintenance problems. In this paper, we focus on the results of using this approach in the reverse engineering of medium scale, industrial software, written mostly in languages such as assembler and JOVIAL. Results from both benchmark algorithms and heavily modified, geriatric software are summarized. We conclude that formal methods have an important practical role in software evolution.


2008 ◽  
Vol 45 ◽  
pp. 161-176 ◽  
Author(s):  
Eduardo D. Sontag

This paper discusses a theoretical method for the “reverse engineering” of networks based solely on steady-state (and quasi-steady-state) data.


1987 ◽  
Vol 134 (3) ◽  
pp. 133 ◽  
Author(s):  
W.J. Cullyer ◽  
C.H. Pygott
Keyword(s):  

Sign in / Sign up

Export Citation Format

Share Document