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)