An interactive software development environment can be viewed as a structure-based editor, provided that structure is broadly interpreted. The user sees and manipulates complex objects at various levels of detail. Many of the implications of changes are analyzed and made available to the user as frequently as the user wishes, without a mode change from editing to compiling or linking. To help provide these services in a uniform way that can readily respond to changes in the programming language1989 supported or in the preferences of individual users, some programming environments use attribute grammars. The attributed graph specifications (AGS's) defined here are inspired by attribute grammars but are free of their restriction to structures expressible by parse trees generated by context-free grammars. An AGS deals with whatever structure is appropriate in a given application. The graph concept here is not tied to any decision about pictorial representation. Indeed, we do not care whether the user sees pictures or text or a combination of the two. The AGS formalism is a uniform paradigm for specifying the desired relations among many and varied chunks of information, some of which are changed by the user. The benefits of the original attribute grammar formalism were confined to parse trees and severely restricted manipulations of parse trees. The AGS paradigm extends those benefits to software development on a larger scale. © 1989, ACM. All rights reserved.