Flexibility and portability

The traditional Unix programming environment is just that--traditional. Its use is subject to numerous conventions and guidelines which specify how makefiles, directories, comments, documentation etc. are to be organised. However, all rules are made to be broken, and it seems that every program has some feature that is an exception to some rule. My program is designed to work with an arbitrary program from an arbitrary source, and thus it will have to deal with these quirks. Realistically, the goal of producing a program that will be able to deal with any situation is clearly impossible, and even trying to capture the simpler conventions formally is a huge task. Therefore, the goal I have set myself is to produce a program which can deal with a wide variety of programs, and have a better than even chance of working with a given program. This is a vague and perhaps over-simplified goal, but the task of producing a ``foolproof'' system is for a large software corporation, rather than a research project.



Matthew Exon 2004-05-28