Griffin: A Programming Language for Software Prototyping

The objective of the Griffin project at NYU is to develop a new language, environment, and process for prototyping large software systems. Using the Griffin prototyping technology, software developers will be able to prototype large systems in a fraction of the time and expense of that of production systems.

There are several thrusts to the Griffin project. The main thrust is the design of the Griffin prototyping language. This is a language incorporating a number of recent advances in programming language technology. These include a powerful polymorphic static typing system that supports modular and object-oriented programming styles, a persistence mechanism with transactions to support multi-programmer development efforts and database applications, a non-deterministic pattern-matching mechanism with guards for goal-directed evaluation, and a generalized tasking and communication mechanism for concurrent computations. These features have been demonstrated, via real-world examples, to enable Griffin programs to be several orders of magnitude more concise (and faster to develop) than similar programs in Ada and other popular conventional languages.

Another thrust of the project is the implementation of a window-based Griffin programming environment including a Griffin translator and interpreter, a syntax-directed editor and debugger, and a number of source-control and library management tools.

Finally, the Griffin group is actively researching module interconnection technologies. These technologies will allow the construction of software prototypes from heterogeneous components written in Griffin and other languages.

The members of the Griffin group are Professors Dewar, Goldberg, Harrison, Schonberg, and Shasha and several research staff members and graduate students.