This thesis presents a generalized approach to data editing in interactive systems. The design and implementation of the ED3 editor, which is a powerful tool for text editing combining the ability to handle hierarchical structures with screen-oriented text editing facilities, is described as well as a number of ED3 applications. A technique for efficient program editing for large programs is also described. An editor for Pascal and Ada programs has been created by integrating parsers and pretty-printers and a Pascal to Ada syntax transaltor into ED3.