Programming by Refinement, as Exemplified by the SETL Representation Sublanguage
ACM Transactions on Programming Languages and Systems (TOPLAS)
Social processes and proofs of theorems and programs
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Art of Computer Programming Volumes 1-3 Boxed Set
The Art of Computer Programming Volumes 1-3 Boxed Set
Automatic data structure selection in SETL
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Transformational Derivation of a Garbage Collection Algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
Experience with the SETL Optimizer
ACM Transactions on Programming Languages and Systems (TOPLAS)
The NYU Ada translator and interpreter
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on The ADA programming language
The NYU Ada translator and interpreter
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on Ada programming language
Hi-index | 0.00 |
Associated with every programming language is a style of programming which is encouraged by the semantic and syntactic features of this language. We are all familiar with the phenomenon of a FORTRAN programmer approaching APL for the first time and writing correct APL programs which are nevertheless emphatically criticized for not displaying the proper APL style. Indeed we may consider this 'APL style' to be the most important contribution of the language to the art of programming, rather than the specific language features out of which this style emerges. Controversies about the value of APL (and other programming languages) focus precisely around this issue of style. It is also around this issue that we want to center our presentation of SETL. Briefly stated, SETL is a very-high level programming language whose basic semantic constructs are those of the mathematical theory of sets. Primitive operations in SETL include set membership, union, intersection, power set construction, etc. SETL provides two basic aggregate data types : unordered sets, and sequences, or tuples. The elements of sets and the components of tuples can themselves be of arbitrary type, including sets and tuples. In particular, sets of pairs (i.e. tuples of length 2) can be used as maps with perfectly general domain and range types.