FIELD: A Friendly Integrated Environment for Learning and Development Steven P. Reiss Department of Computer Science Brown University Providence, RI 02912 spr@cs.brown.edu (401) 863-7641 April, 1989 FIELD is a UNIX-based, open, integrated programming en- vironment. It offers a rich set of tools, both standard UNIX tools and tools developed at Brown, all with con- sistent visual interfaces in an integrated setting. The FIELD project is an effort to show that highly integrated, interactive environments like those on personal machines can be implemented on workstations for classical languages and large-scale programs. At the same time, it shows that the more advanced capabilities of workstations can be used to attain a more productive and powerful environment by providing functionality not found on personal machines or in standard software engineering environments. FIELD was also designed to provide a production environment for both research and instructional programming at Brown. To make the environment operational as soon as possible and to ensure that it could be maintained and would work in an educa- tional environment, the system was designed to be simple and inexpensive. We made use of existing tools wherever possible: standard UNIX tools, workstation software developed at Brown, and other available tools and software. At the same time, the system attempts to provide a testbed environment in which new tools such as program animation systems can be easily incorporated. All these goals were accomplished in FIELD by providing a consistent graphical front end and a simple integration framework that allows existing and new UNIX tools to cooperate. The front end is based on an updated version of the set of tools called the Brown Workstation Environment. This includes a variety of input interfaces including static, pull-down and pop-up menus, dialog boxes and scroll bars; a powerful and extensible base editor; a geometry package; drawing packages including one for the automatic layout and display of structured diagrams; an integrated help facility; and an application window manager. The integration framework, a principal contribution of the FIELD system, allows a wide variety of tools to be tied together with minimum effort. It combines a communications mechanism that we call selective broadcasting, with an annotation editor that provides consistent access to the source in multiple contexts and with a set of specialized interactive analysis tools. In selec- tive broadcasting all tools talk to a central message server. Each tool registers a set of patterns with the server. Tools communicate by sending messages to the server and receiving those messages that match their registered patterns. This approach is easy to implement and to extend. It offers several advantages over the more traditional integration mechanisms involving pro- gram databases or a single, massive system. The FIELD system demonstrates that this simpler approach is both feasible and desirable. The current environment includes a debugger, editors, visual interfaces to UNIX make and gprof, event and stack viewers, a cross reference tool based on a relational database, a call-graph viewer, a dynamic data structure display facility, and a C++ class brower. The system runs on both Sun3 and Sun4 workstations as well as Decstations under X11.