SETL and the Evolution of Programming

  • Robert Dewar


The idea that programming should focus on the “what” rather than the “how” has generally been realized in language features for modularization and data type abstraction (classes and inheritance, for example). But equally important is having a notation to express functionality rather than algorithm and data structure detail, in effect to think like a mathematician rather than a programmer. That was Jack Schwartz’s goal for the SETL project at NYU when it originated some 40 years ago. Based around the fundamental concepts of set and mapping, SETL has been used in practice to write executable specifications, effectively integrating requirements and design into compilable source code. As modern compiler technology, as well as modern hardware performance, make run-time efficiency issues much less of a concern, SETL’s high-level worldview shows how to make programming easier and more productive. SETL has had a quiet but pervasive influence on language design, as seen for example in languages such as Python.


High Level Language High Level Specification Executable Specification Conventional Programming Language General Mapping Structure 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Astesiano, E., Reggio, G.: The SMoLCS approach to the formal semantics of programming languages—a tutorial introduction. In: Habermann, A.N., Montanari, U. (eds.) System Development and Ada: CRAI Workshop on Software Factories and Ada, pp. 81–116. Springer, London (1987) Google Scholar
  2. 2.
    Lions, J.L.: ARIANE 5, Flight 501 Failure, Report by the Inquiry Board (1996).
  3. 3.
    NYU Ada Project: Ada/Ed interpreter: Executable semantic model for Ada. Technical report, Courant Institute of Mathematical Sciences, New York University, July 1984 Google Scholar
  4. 4.
    Paige, R., Koenig, S.: Finite differencing of computable expressions. ACM Trans. Programm. Lang. Syst. (TOPLAS) 4(3), 402–454 (1982) MATHCrossRefGoogle Scholar
  5. 5.
    Schwartz, J.T.: On programming. An Interim Report on the SETL Project, Computer Science Department, Courant Institute of Mathematical Sciences, New York University (1973) Google Scholar
  6. 6.
    Schwartz, J.T., Dewar, R.B.K., Dubinsky, E., Schonberg, E.: Programming with Sets: An Introduction to SETL. Springer, New York (1986) MATHGoogle Scholar

Copyright information

© Springer-Verlag London 2013

Authors and Affiliations

  1. 1.Courant InstituteNew York UniversityNew YorkUSA
  2. 2.AdaCore TechnologiesNew YorkUSA

Personalised recommendations