An editor that is aware of the sYntactic, semantic and in some cases the structural rules of a specific programming language and provides a framework for the user to enter source code. Programs or changes to previouslY stored programs are incrementallY parsed into an abstract sYntax tree and automaticallY checked for correctness. (1995-02-15)