Simple type system for program reengineering

This paper describes a type system used in a disassembler program to produce enhanced disassembly output The type system described in this paper is capable of representing C language types. It operates using the following methodology. First, the type information is collected from the standard C headers and is stored in type library files. The stored information is then used to comment and enhance the disassembly. A simple propagation algorithm for function arguments is described as an illustration of the functionality of the system. The power of the type system presented is that a decompiler can be constructed using a disassembler augmented by this system.