POLYA(ID:4381/pol007)


for Polya the mathematical logician

Programming language developed at Cornell by Gries for teaching programming (instead of the prevailingly fashionable for Java and C++)

Developed at Cornell University, introduces a new programming language construct, called the transform, for expressing coordinate transformations.

Places
People:
References:
  • Gries, D. and Volpano, D. "The Transform -­ a New Language Construct" Structured Programming, 11:1--10, 1990. view details
  • van den Berg, Aswin; Gries, David; & Sofoklis Efremida "Incremental Evaluation of Higher Order Attribute Grammars" Report on the Dagstuhl­ Seminar on Incremental Computation and Dynamic Algorithms May 2 ­ 6, 1994 view details Abstract: Normal order attribute grammars have a separation between syntactic and semantic levels (between derivation trees and attributes). This restricts AG's to only constant phase transformations. In higher order attribute grammars (HAG's)  derivation trees can be defined in terms of attributes (NTA's) and attributes can  reference derivation trees directly (syntactic references). This enables the iteration of transformations and annotations to be modeled or implemented.  We discuss HAG's and their efficient incremental implementation. To allow constant time access to attributes we explicitly maintain the attributed tree. Higher  order evaluation is reduced to normal order evaluation with side-effects that extend the derivation tree. An algorithm is presented that reuses reusable subtrees  of an NTA when re-evaluated.
    Our methods have been implemented in the current version of the Synthesizer Generator. HAG functionality is used the implementation of the Polya transformation system that was demonstrated during the Seminar.
  • Fegaras, Leonidas and Stemple, David "Using Type Transformation in Database System Implementation" Department of Computer and Information Science University of Massachusetts, Amherst view details Abstract: Polya, developed at Cornell University, introduces a new programming language construct, called the transform, for expressing coordinate transformations. Each transform includes a coordinate transformation
    from a set of abstract variables to a set of concrete variables and explicit transformation rules to map each individual expression or statement that works on abstract variables into the corresponding one that works on concrete variables. Each part of an abstract program must match exactly with one of these patterns in order to be compiled
    Resources
    • Report page at Cornell
      My research is aimed at gaining a better understanding of the programming process, with respect to both sequential and concurrent (or parallel) programs. The work requires investigation of theories of program correctness and their application, as well as investigation of other concepts in the semantics of programming languages. A procedural programming language, Polya, is being defined and implemented. We are attempting to make the language in which algorithms are usually presented the programming language, but without loss of efficiency. This has entailed work in the theory of polymorphic types and type inference as well as the development of new constructs for defining types and for describing the implementation of variables.  The hope is that this work will advance the state of the art of reusability of program parts and will raise the level at which programs are written
      external link
    • Yanhong Annie Liu research on optimization using Polya
      In addition, based on the study of Polya, a programming language being implemented at Cornell by the group of Professor David Gries, we are investigating the interplay between program optimization and modularity (or abstraction), which is crucial for generating efficient code in program refinement and object-oriented programming. Another goal of this research is to develop methods for parallel/concurrent computations by incrementalizing across processors and analyzing asynchronous computations.
      external link