Flexibility

The traditional Unix philosophy is to create many different tools that can be combined flexibly to produce very complicated operations particularly well suited to the specific circumstances under which they are used. This is the philosophy behind the use of utilities such as gcc, make, gdb, etc. as the standard Unix programming environment. Unfortunately, it leads to the problem that when my program tries to read in a new program, it cannot possibly take into account all of the possible configurations that may be necessary. Similarly, C++ is designed to be as flexible as possible, and this makes it difficult to take into account every possible way it may be used. For example, a program that makes extensive use of preprocessor macros may not be accurately represented in my program, because variables that are used in macros will be recorded by the compiler as having occurred wherever the macro occurs. However, the code window only works with the original code, and so the user will have no way of knowing what variables are ``hidden'' by the macro.

So although I have tried to make my program as flexible as I could, it was impossible to take into account all the possible scenarios that a user would be likely to encounter. In order for the program to become a truly useful addition to the Unix environment, one of the following would have to occur:

Matthew Exon 2004-05-28