On Inverse Of Compiling 2

Program-Transformation.Org: The Program Transformation Wiki


A decompiler model has been described which was implemented and which achieved a relatively high figure of merit. There are, however, many fundamental problems which remain to be solved before decompilation can be considered as a generally accepted method of conversion. Why has there been no solution to these problems? Admittedly, they are very complex, but there has been very little visible evidence of any concerted effort to solve them. A glance at the attached bibliography contains only a few expositions on the techniques. No published account of a commercial decompiler is to be found within the last ten years [21].

The most recent survey of conversion techniques [13] indicates that a general solution for decompilation, will not be seen within five years (from 1978). This seems optimistic considering the amount of published material on the subject. The problems remaining cannot be solved without a firm foundation which goes far beyond that which now exists.

The problems which remain to be solved are not unique to decompilation as a conversion tool. They appear in all aspects of software development from definition and design through maintenance and evolution of systems.

With the explosion of hardware technology during the last decade and that predicted for the next, and with the predicted shortage of software professionals, conversion aids and portability will become increasingly important, if not imperative, for the advancement of software development.

Innovation by major computer vendors is seriously threatened by the monumental conversion process required of its customer base that new hardware and software systems have been canceled short of implementation or release. All the while, more machine dependent software is produced by computer vendors, users, and software houses. The cost of a solution is high -- the cost to do business without a solution is even higher.


1. Allen, F.E., Cocke, J. A Program Data Flow Analysis Procedure. CACM 19,3, (Mar 1976) pp 137-147.

2. Baird, G.N. and Johnson, A.L. System for Efficient Program Portability. Proc. AFIPS Natl. Comp. Conf. Expo. Vol. 43 (1974) p 423-429.

3. Barbe, Penny. Techniques for Automatic Program Translation. Software Engineering, Vol. 1, 1970, p 151-165. (CR21549).

4. Boulton, P.I.P. and Goguen, J.R. A Machine Description Language. Computing Journal (CB) 22,2, p 132-135, 1979.

5. Boyce, Raymond F. Topological Reorganization as an Aid to Program Simplification. PhD Thesis, Purdue University, June 1972.

6. Brown P.J. (Ed) Theory of Program Portability. Software portability: An Advanced Course, Cambridge Press, 1977, p 7-19.

7. Buck, B.W., Evans, D.J. (Ed). Conversion - a Doddle or a Disaster? Software World, Software 73, 1974, p 149-153.

8. Cartmell, D.J. The Intermediate Language (IL) Table. TM-555/050/009. Systems Development Corp., Santa Monica, California, 1972.

9. Dahlstrand, I; Cowell, W. (Editor) A Study of Portability in Technical and Scientific Computing. Portability of Numerical Software, Springer-Verlag-Hill, p 529-539.

10. Dellert, G. A Use of Macros in Translation of Symbolic Assembly Language of One Computer to Another. CACM 8,12 (Dec 1963) p 742-748 (CR9336).

11. Frailey, Dennis J. A Study of Code Optimization Using a General Purpose Optimizer. PhD Thesis, Purdue University, Jan 1971.

12. Friedman, Frank L. Inverse Compilation Feasibility. Proc. ACM'74, San Diego, (Nov 1974) p 750.

13. Fry, James P., et al. Assessment of the Technology for Data and Program Related Conversion. Proc. AFIPS Natl. Computer Conf. Expo., Vol 47, 1978, p 887-907.

14. Gaines, R. Stockton. On the Translation of Machine Language Programs. CACM 8,12 (1965) p 736-741.

15. Gordon W.L. Liberator, The Concept and the Hardware. ACM Symp. Reprogramming Problem, Princeton, New Jersey, June, 1965.

16. Graham S. The Semi-Automatic Computer Conversion System (SACCS). ACM Symp. Reprogramming Problem, Priceton, New Jersey, June, 1965.

17. Gunn J.H. Problems in Programming Interchangeability. Symbolic Languages in Data Processing, Gordon and Breach Science Publ., New York, 1962, p 770-790.

18. Halstead, Maurice H. Elements of Software Science. Operating and Programming Systems Series, Elsevier, 1977.

19. -------. Machine Independence and Third Generation Hardware. Proc. Spring Joint Computer Conference, 1967, p 587-592.

20. -------. Machine Independent Computer Programming. Chapter 11, Decompiling. Spartan Books, Washington D.C., 1962.

21. -------. Using the Computer for Program Conversion. Datamation (May 1970) p 125-129.

22. Halstead, Maurice H. and Bayer, Rudolf. Algorithm Dynamics. Purdue University, May, 1972.

23. Hollander, Clifford R. Decompilation of Object Programs. PhD Thesis, Stanford University, Jan 1973.

24. -------. A Syntax-Directed Approach to Inverse Compilation. Proc. ACM'74, San Diego, Nov 1974, p 750.

25. Heacox, H.C. RDL: A Language for Software Development. ACM SIGPLAN Notices 12,12 (Dec 1979).

26. Hopwood, Cregory L. Inverse Compiling for Program Documentation. Proc. ACM'74, San Diego, Nov 1974, p 751.

27. -------. Decompilation, PhD Dissertation, Dept. of Information & Computer Science. U of Calif., Irvine, March 1978.

28. Housel Barron C. A Study of Decompiling Machine Languages into High Level Machine Independant Languages. PhD Thesis, Purdue University, August 1973.

29. -------. A Unified Approach to Program and Data Conversion. Proc, Intl. Conf. on Very Large Data Bases, Oct 1977, p 327-335.

30. -------. On Inverse Translation of Machine Language, Proc. ACM'74, San Diego, Nov 1974, p 752.

31. Housel, Barren C. and Halstead, M.H. A Methodology for Machine Language Decompilation. IBM Research Report #RJ1316, Dec 1973.

32. IBM. 1400 Autocoder to COBOL Conversion Aid Program. (360 A-SE-19x), Version 2 Application Description Manual, (GH29-1352-2), White Plains, N.Y. IBM 1967.

33. Lichstein, Henry A. When Should You Emulate? Datamation. November, 1969, P 205-210.

34. Lowry, Edward S. and Medlock, C.W. Object Code Optimization. CACM, January 1969, p 13-23.

35. McEwan, A. An Atlas Autocode to Algol 60 Translator. Computer Journal 9,4 (Feb 1967) p 353-359, (CR12746).

36. McKeeman, W.M. Peephole Optimization. CACM 8 (July 1965), p 443-444.

37. Mendicino, Sam F.; Hughes Robert A; Martin, Jeanne T.; McMahon, Frank H.; Ranelletti, John E.; and Swakenburg, Richard G. The LRLTRAN Compiler. CACM, Nov 1968, p 747-755.

38. Mock O.; Olsztyn, J.; Steel,T.; Teitter,A,; and Wegstein,J. _The Problem of Programming Communications with Changing Machines: A Proposed Solution._ CACM 1,8 p 12-18; 1,9 p 9-15, (1958).

39. Morenoff, E. The Transferability of Computer Programs and the Data on Which They Operate. Proc. AFIPS Spring Joint Computer Conf., 1969, p 609-610, AFIPS Press, Montvale, New Jersey, 1969.

40. Morenoff E. and McLean, J.B. An Approach to Standardizing Computer Systems. Proc. Natl. ACM Conf., Washington, D.C., 1967, p 527-535, MOI Publ., 1969.

41. Nunamaker, J.F.,Jr. Nylin, W.C.,Jr.; and Konsynski, Benn, Jr. Processing Systems Optimization Through Automatic Design and Reorganization of Program Modules. Purdue University, 1972.

42. -------. A Methodology for the Design and Optimization of Information Processing Systems, Proc, Spring Joint Comp. Conf. 1971, p 238-294,

43. Nylin, William C., Jr. Structural Reorganization of Multipass Computer Programs. PhD Thesis, Purdue University, June, 1972.

44. Oliver, Paul. Guidelines to Software Conversion. Proc. AFIPS Natl. Computer Conf. Expo., Vol 47, 1978, p 877-886.

45. Olsen, T. Philco/IBM Translation at Problem-Oriented, Symbolic and Binary Levels. ACM Symp. Reprogramming Problem, Princeton, New Jersey, June, 1965.

46. Opler, A. Automatic Program Translation. Datamation, 9,5 (1963) pp 45-48.

47. Opler, A., et al. Automatic Translation of Programs from One Computer to Another. Information Processing, 1962, North-Holland Publishing Co., Amsterdam, 1963. p 550-553.

48. Pazel, D.P. Mathematical Construct for Program Reorganization. IBM Journal of R&D., 19,6 (Nov 1975) p 575-581.

49. Sassaman, W.A. A Computer Program to Translate Machine Language into FORTRAN. Proc. Spring Joint Computer Conf. 1966. p 235-239.

50. Su, Stanley Y.W. Applications Program Conversion due to Data Base Changes. Proc. 2nd Intl. Conf. on Very Large Data Bases, 1977. p 143-157.

51. Teichroew, D. and Hershey, E.A. PSL/PSA: A Computer Aided Technique for Structured Documentation and Analysis of Information Processing Systems. IEEE Trans. Soft. Eng. 3,1 (1977), p 41-48.

52. Weller, Maria F. A Pragmatic Look at Decompilation. Proc. ACM'74, San Diego, Nov 1974, p 753.

53. Williams, Douglas A. Conversion at Lockheed Missiles and Space. Datamation, January 1967, p 39-45.

54. Wilson, Donald J. and Mossr David J. CAT; A 7090-3600 Computer-Aided Translation. CACM 8,12 (1965) p 777-781.

55. Wolberg, J.R.; Rafal, M. CONVERT - A Language for Program and Data File Conversions. Software Practice and Exp. 8,2 (Mar-Apr 1978) p 187-198.

Copyright 1998 Bill Caudle, All Rights Reserved.