The Choice of Programming Primitives for SETL-Like Programming Languages

We discuss the choice of programming primitives for set oriented programming languages such as SETL. For this purpose we introduce a mathematical model (hereditarily finite sets with urelements). In this model criteria for the choice of programming primitives are defined. The criteria are complexity, independence and computational completeness of the basic constructs. We propose primitives satisfying our criteria and also discuss briefly the possibility of defining abstract data types within our mathematical model. We give a characterization of the data types whose objects are recognizable in NP. Our work is a synthesis of several approaches previously introduced in other frameworks, such as query languages, generalized recursion theory and high level programing language design.