RE: reverse compilation
Thu, 27 Jul 89 10:57 MET

          From comp.compilers

Related articles
RE: reverse compilation (1989-07-15)
| List of all articles for this month |

Date: Thu, 27 Jul 89 10:57 MET

I recently posted a news message because I was looking for information about
decompilation. Many thanks to all the people sending me email, they helped me
a lot. I promised to summarize the answers in comp.compilers. I found some
additional sources of information about structuring of programs that I want to
include as well.

Robert S. Arnold
Software Restructuring
Proc. of the IEEE, Vol. 77, No. 4, April 1989, pp. 607 - 617

Edward Ashcroft, Zohar Manna
The Translation of `GOTO` Programs to `WHILE` Programs
Information Processing 71, North Holland Publishing Company, 1972, pp. 250 - 255

R. C. Linger, H. D. Mills, B. I. Witt
Structured Programming: Theory and Practice
Addison Wesley, 1979, pp 118 - 126

Fridtjof Feldbusch, FELDBUSCH@IRA.UKA.DE
From: IN%"pardo@june.cs.washington.EDU" "David Keppel" 20-JUL-1989 07:37:34.77

There is a very VAX and PCC C-specific decompiler. You can get a copy by
anonymous ftp from ( Login `anonymous'
password == your user name, get the file pub/ Be sure to use
`binary' mode. If you are lacking anonymous ftp, `ar' or `compress', I can
send you a copy in your favorite format.

To give credit where due, the program was written by Jim Reuter for porting
`Empire' from Un*x to VMS (!).

The output is not a syntactically correct C program, but gets pretty close.

Hope this helps!

;-D on ( Don't just *talk* about reverse engineering! ) Pardo --
From: IN%"visix!cobra!andyt@uunet.uu.NET" "Andy Turk" 20-JUL-1989 17:03:46.39

A guy I used to work with came up with a very clever method for decompiling
Prolog. The technique is based on the WAM (Warren Abstract Machine)
architecture, but could probably be extended to other Prolog implementations
as well. However, I doubt that his idea would scale up to non-logic based
languages. Here's the reference:

Fast Decompilation of Compiled Prolog Clauses
Kevin A. Buettner
Proceedings of the 3rd Int'l Conference on Logic Programming
Springer Verlag (225), 1986

Andy Turk
From: IN%"eggert@twinsun.COM" "Paul Eggert" 20-JUL-1989 17:03:50.67

Your might try John Banning and Hans Pufal's NLZ program, which is part of
Hunter Systems's XDOS suite. You can use it to decompile PC applications and
port them to Unix workstations. Contact

Hunter Systems
444 Castro St
Mountain View, CA 94041, USA
telephone 415-965-2400

-- Paul Eggert, Twin Sun, Inc. <>
From: IN%"peterd@june.cs.washington.EDU" "Peter C. Damron" 20-JUL-1989

Here are the few references from my bibliography.

Hope this helps,

Peter C. Damron
Dept. of Computer Science, FR-35
University of Washington
Seattle, WA 98195
(how to get here from Europe I have no idea!)

%A U. Lichtblau
%T Decompilation of Control Structures by Means of Graph Transformations
%J LNCS; V 185; D 1985; P 284-297
%X lecture notes in computer science, springer-verlag

%A G. L. Hopwood
%T Decompilation
%R Ph.D. Dissertation
%I University of California, Irvine
%D FEB 1978

%T A Study of Decompiling Machine Languages into High-Level Machine Independent
%A Barron Cornelius Housel, III
%R Ph.D. Dissertation
%I Purdue University
%D AUG 1973

%T A Definition Optimization Technique Used in a Code Translation Algorithm
%A David M. DeJean; A George W. Zobrist
%J CACM; V 32; N 1; D JAN 1989; P 94-105
From: IN%"cwf@research.att.COM" 21-JUL-1989 00:33:26.60

Your recent submission to the comp.compilers newsgroup
asked for references regarding decompilation.
Here's one:

Frank L. Friedman.
Decompilation and the Transfer of Mini-Computer Operating Systems.
PhD dissertation, Dept of Computer Science, Purdue, 8/74.
From: IN%"worley@compass.COM" "Dale Worley" 21-JUL-1989 01:03:22.72

There at least used to be (>10 years ago) a product that would take
object programs (for IBM 360s?) and turn them into Cobol. (Probably
really stupid Cobol.) Apparently it was for the large number of
operations that had programmed in assembler, but had lost the

Dale Worley, Compass, Inc.
Civilization ends at the water's edge. On the ocean, you enter the food chain,
and not necessarily at the top.
From: IN%"rayt@cognos.cognos" 22-JUL-1989 06:41:04.73

Title: An Algorithm for Structuring Flowgraphs
Author: Brenda S. Baker
Source: JACM 24:1; 98,120 (Jan 1977)

"This paper describes an algorithm which transforms a flowgraph into a
  program containing control constructs such as IF THEN ELSE statements,
  REPEAT (DO FOREVER) statements, multilevel BREAK statements (causing
  jumps out of enclosing REPEATS)."


Ray Tigg | Cognos Incorporated
                                                                    | P.O. Box 9707
(613) 738-1338 x5013 | 3755 Riverside Dr.
UUCP: rayt@cognos.uucp | Ottawa, Ontario CANADA K1G 3Z4
From: IN%"ndmh!rahe@uni-dortmund.DE" 27-JUL-1989 02:31:29.39

Yes, I have some articles about decompilation.
At the University of Dortmund, there was a student project
about decompilation from Assembler to Pascal in 1979-1980.
After this project I myself worked on a compiler from Basic to Pascal with
another student as master thesis and
there was at least another project on decompilation (I think it was Cobol
to Pascal).

Here are the articles, we mentioned in our master thesis:
      Friedmann, F.L.
      Decompilation and the Transfer of Mini-Computer Operation Systems
      Diss., Purdue University, Lafayette, 1974

      Hollander, C.R.
      Decompilation of Object Programs
      Diss., Stanford University, 1973

      Housel, B.C.
      A Study of Decompiling Machine Languages into High-Level Machine
      Independent Languages
      Diss., Purdue University, Lafayette, 1973

      Housel, B.C., Halsted, M.H.
      A Methodology for Machine Language Decompilation
      Proceedings of the ACM Annual Conference, 1974
      pp. 254-260

      Sassaman, W.A.
      A Computer Program to Translate Machine Language into FORTRAN
      AFIPS Conference Proceedings, Vol. 28, S.J.C.C., 1966
      pp. 235-239

and two articles in German:

      Endbericht der Projektgruppe Umkehrcompilierung I
      University of Dortmund, W-Germany, Abteilung Informatik, Lehrstuhl II, 1980
      D-4600 Dortmund

      Moellers, P. , Heinemann,R.
      Entwurf und Implementierung eines Compilers von BASIC nach PASCAL
      Diplomarbeit, University of Dortmund, W-Germany, 1980
      D-4600 Dortmund

Best Regards

Ralf Heinemann
Norsk Data GmbH
Solinger Str. 9
D-4330 Muelheim
Tel: ++49 208 4844 253

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.