Set oriented languages and program transformations

  • Philippe Facon
  • Yo Keller


Set constructs and notations provide in many areas an unprecedented expressive power. Sets are nevertheless almost non-existent in most programming languages since they don't have a general-purpose efficient enough representation. Only global transformations, taking into account the context of set constructs and operations may provide a reasonable efficiency. After a brief survey of existing Set Oriented Languages, we present recent developments taking place at New York University concerning SETL and its successors, especially fixed-point specifications, elimination of repetitive evaluations by finite differencing and elimination of associative access costs by an appropriate Data Structure Selection for implementing sets. In this framework we present two original contributions: the first one concerns a rewrite operator on sets for dealing with fixed points of some non-monotonic transformations. The second one concerns Data Structure Selection and how we have extended and reformulated its mechanism as a special kind of type inference,relatively easily implemented in Prolog.