SETL and the Evolution of Programming
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.
KeywordsExpense Sorting Aliasing
- 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). http://www.ima.umn.edu/~arnold/disasters/ariane5rep.html
- 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
- 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