Generating environments for programming-in-the-large

  • Authors:
  • Wafa Khorshid

  • Affiliations:
  • Computer Science Department, Wayne State University, Detroit, MI

  • Venue:
  • CSC '88 Proceedings of the 1988 ACM sixteenth annual conference on Computer science
  • Year:
  • 1988

Quantified Score

Hi-index 0.00

Visualization

Abstract

In order to provide better programming environments, language-based tools are introduced. These are tools which use knowledge of a programming language's structure to provide special program development facilities. However, current software environment generators are geared towards generating environments which have language-based tools for programming-in-the-small only. They generate environments with language-based syntax-directed editors [1,2,3].Further improvements for programming environments could be achieved by extending the concept of providing language-based tools to include tools for programming-in-the-large [4]. To create a new environment, the designer supplies a declarative description for the target programming language objects and their interactions. The description of the programming language objects is given in a meta language based on the E-R model. The environment generator then processes and links this information together with a kernel supplied by the generator to produce a new environment. All the generated environments will have a uniform data model representing programs. A program is represented as a set of attributed entities which are linked together by a set of relations. The generated environments are a collection of integrated tools which are tailored according to the definition of the target programming language as well as tools which are standard for all environments (kernel) and do not depend on a language. Below is a brief description of these tools.Graphical Interface Manager: This tool represents the communication medium between the user and the environment. It interprets the user's command and accordingly invokes the relevant system component which, in turn, will perform the operation requested by the user.System Manager: It contains a set of operations which allow the user to save, load, and initialize the objects of software system stored in the database. It also contains operations for executing the code generated from the information stored in the database.Entity editor: used to build and manipulate the architecture of a program. With this tool, software objects and their relationships can be added or deleted.Browser: It provides mechanisms to display information. The main feature of the Browser, is the support for displaying multiple views of a program through multiple windows. Each window is equipped with mechanisms to invoke all the tools in the environment.Information Viewer: Views are subsets of a software system graph. They contain a particular structural information. Information Viewer displays such information based on criteria set by the user.Database: It is a repository of all the information about software components and their interconnections.Parser: Extracts all entities and their relations which appear in a source code and stores them in the database.