The goal of the Polya project is to increase productivity in the development and maintenance of programs, by placing more emphasis on the user interface within the programming language itself. This research seeks new ways to write programs, to make programs efficient, and to reuse program parts. It is concerned directly with software engineering and rapid prototyping. The programming language Polya incorporates new mechanisms that allow a group of people to define and use notations of their problem domain, so that programs can more closely resemble the algorithms being used. Secondly, Polya has mechanisms that make it easier to describe how variables of high-level types should be implemented, requiring fewer modifications to the algorithm than is the case with more traditional languages. The transform, a new kind of program part, can be reused with relative ease. A prototype implementation of Polya uses the Synthesizer Generator as the platform. This research focuses on three areas: (1) research aimed at a significant extension of the pattern matching capabilities of the Polya transformational approach and exploration of new ideas on reverse engineering; (2) experimentation with Polya, in order to develop a library of useful program parts; (3) practical and theoretical improvements to Polya, its implementation, and related tools such as a source-level debugger.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Application #
9503319
Program Officer
Frank D. Anger
Project Start
Project End
Budget Start
1995-09-01
Budget End
1999-08-31
Support Year
Fiscal Year
1995
Total Cost
$270,000
Indirect Cost
Name
Cornell University
Department
Type
DUNS #
City
Ithaca
State
NY
Country
United States
Zip Code
14850