Skip to main content


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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
EUR 32.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others


  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. Lions, J.L.: ARIANE 5, Flight 501 Failure, Report by the Inquiry Board (1996).

  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. Paige, R., Koenig, S.: Finite differencing of computable expressions. ACM Trans. Programm. Lang. Syst. (TOPLAS) 4(3), 402–454 (1982)

    Article  MATH  Google Scholar 

  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. Schwartz, J.T., Dewar, R.B.K., Dubinsky, E., Schonberg, E.: Programming with Sets: An Introduction to SETL. Springer, New York (1986)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Robert Dewar .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag London

About this chapter

Cite this chapter

Dewar, R. (2013). SETL and the Evolution of Programming. In: Davis, M., Schonberg, E. (eds) From Linear Operators to Computational Biology. Springer, London.

Download citation

  • DOI:

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-4471-4281-2

  • Online ISBN: 978-1-4471-4282-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics