A software system that provides support to the program development phase of a software project. A typical program development system employs a simple database (or perhaps just a basic filing system) as a repository for information, and offers software tools for editing of program source texts, compiling, link loading, and debugging. Usually some form of command-language interpreter is also available; this may have been produced specifically for the program development system, or may have been inherited from the underlying operating system. Compare software engineering environment.