Future Work

This navigator was written as an experimental implementation of various ideas I had for the graphical display of program information. Although a stand-alone program navigator is a useful tool, the full benefit of these ideas can only be realised once they are integrated with a larger programming environment. Reading other people's code is important, but totally useless unless you can then modify or extend it. As a result of this research, I believe that the graphical display of program information can greatly reduce the amount of time programmers need to spend trying to comprehend code, so that they have more time to concentrate on writing it. I would expect that in the future, programming environments will continue to follow the path to graphical displays.

It would be instructive to perform a study of to what extent programmers, both novice and experienced, can use the system to speed up the process of understanding a program, in a similar manner to the studies mentioned in the literature review [23,18].

An important addition to my program is the handling of macros. As I have described previously, extensive use of macros in a program can degrade the quality of the navigator's representation of a program. The problem with macros is that they add a whole new level of complexity--just because the compiler says that a particular variable occurs on a particular line, doesn't mean that it's actually there in the source code. Checking for this involves keeping a table of macro definitions during the parsing of the code. Since g++ uses two separate runs for the preprocessor and the actual parsing, it would require extensive modifications to g++ to allow this to happen.

It would be very useful to replace my code window with a full editor, that would allow the user to edit the code as well as just view it. It would be important to maintain the integration of the system by allowing selections from within the editor to be used by the rest of the program for searches, etc. If this were added, then it would be possible to write a program from the ground up entirely within the navigator, and thus detach the programming process from files and directories entirely. It would be very interesting to see if professional programmers find this preferable to the existing systems.

Matthew Exon 2004-05-28