Generation of Interactive Programming Environments (GIPE II)

Keywords: programming environments, formal language definitions

OBJECTIVES AND APPROACH

The GIPE II project plans to use a generic interactive programming environment as a basis for work in two areas:

-- design, implementation, and experimentation of real-size environments for industrial applications
-- advanced research in the area of interactive environments, based on formal specifications.

This project takes as a starting point the interactive programming environment generator that was the successful outcome of project 348 (GIPE), Centaur. This system uses as input the complete formal description of a programming language and produces a specific environment for that language. The resulting environment includes an editor, an interpreter/debugger, and other tools, all of which have uniform graphics user interfaces. The main result of the GIPE project has been to demonstrate that this technology is feasible.

Its follow-up, GIPE II, aims to make it mature by providing support for the construction of large formal language definitions, extending the functionality and performance of the generated environments, and demonstrating the approach in a number of selected industrial applications, such as the construction of a development environment for scientific computing (based on the use of Fortran) and the development of an environment for the LOTOS specification language. The Fortran application developed an environment allowing for the vectorization of Fortran programs. The LOTOS application developed an environment, which includes a simulator for LOTOS specifications.


PROGRESS AND RESULTS

A distributed architecture for the Centaur system, which is the interactive programming environment generator, is now being used. This makes the system more modular and more appealing to potential customers. Parsers, editors, and other tools used in conjunction with the system may now run on different machines.

Centaur's interfaces (displays and printing) have been made more efficient, and the judicious use of color and fonts allow for effective visualization within the generated environments. Within in the project an independent graph server has been developed, Centaur is communicates with the graph server, which runs in a separate process. The graph server is thus available for generated environments.

The more advanced capabilities of the system werr being explored with the treatment of Fortran, with particular attention to boosting productivity for Fortran programmer who wants to parallelize his code, and the theorem prover communities, Centaur has been used to provide user interfaces for a number of theorem provers. These capabilities profit from a stand-alone tool communication component that has been developed within the project.


INFORMATION

Requests for more information about the system can be done electronically by sending e-mail to centaur-request@sophia.inria.fr or to the contact point listed below.


EXPLOITATION

A version of the Centaur system is now released every year and is distributed by the GIPE consortium since February 1988. This distribution is based on a licence policy either for the non-commercial use of Centaur (for universities and research institutes), or for business development (normal commercial conditions). This policy should increase the user community and allow more and more industrial applications, proving an improved productivity and reliability of systems by using the Centaur system. The latest version has been distributed to over 97 sites (64 of these within Europe) and the project provides user support via a mailing list, centaur@sophia.inria.fr.

The project is continually finding new uses and areas of applicability. In addition to language environments, our users (including people involved in the project) have looked into using Centaur for program transformations, as a front-end to theorem proving systems and symbolic computation systems, for symbolic computation needed for compiler optimizations, etc.

The company Simulog commercially exploits the results of GIPE II. Simulog provides a number programming tools for the scientific computing community. They have several products that showcase GIPE II results. The products revolve around Fortran with environments to help manage large and dispersed libraries of code and their upgrading, analysing, and parallelization (towards various architectures).

The GIPE II project had also broadened the applicability of the system by taking on the difficult case of a concurrent language (LOTOS, a language designed and used for the formal specification of telecommunication protocols). Strong links have been established on this occasion between this project and project 2304, LOTOSPHERE, which aims at building an environment for LOTOS. The system will also affect the development of a European scientific-oriented workstation to be developed in the context of Office and Business Systems project 2569, EWS, for which it will provide a Fortran 77 environment.


Contact Point


Web page maintained by Janet.Bertot@inria.fr