# SETL

> programming language

**Wikidata**: [Q2205923](https://www.wikidata.org/wiki/Q2205923)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/SETL)  
**Source**: https://4ort.xyz/entity/setl

## Summary

SETL is a software application influenced by ALGOL [1]. It was designed to support set-theoretic operations as a core feature of its programming model. The language's syntax and structure reflect its ALGOL heritage, particularly in its procedural constructs and statement formatting [1]. SETL enables direct manipulation of mathematical sets, making it suitable for applications requiring high-level abstract data handling [1].

## Summary
SETL is a high-level programming language originally developed in 1969 by the Courant Institute School of Mathematics, Computing, and Data Science. It is distinguished by its dynamic typing discipline and support for multiple programming paradigms, including imperative, procedural, structured, and object-oriented programming. The language's design was influenced by ALGOL.

## Key Facts
*   **Inception:** The language was created in **1969**.
*   **Developer:** It was developed by the **Courant Institute School of Mathematics, Computing, and Data Science**.
*   **Type Discipline:** SETL utilizes **dynamic typing**.
*   **Influences:** The language's design was influenced by **ALGOL**.
*   **Paradigms:** It supports **imperative, procedural, structured, and object-oriented programming**.
*   **Aliases:** The language is also known as **SETL2**.
*   **Official Website:** The primary web resource is **setl.org**.
*   **Classification:** It is formally classified as an instance of a **programming language**.

## FAQs
### Q: When was SETL created?
A: SETL was created in 1969.

### Q: Who developed SETL?
A: The Courant Institute School of Mathematics, Computing, and Data Science is credited with the development of SETL.

### Q: What are the primary programming paradigms supported by SETL?
A: SETL is a multi-paradigm language that supports imperative, procedural, structured, and object-oriented programming.

### Q: What typing discipline does SETL use?
A: SETL employs dynamic typing.

## Why It Matters
SETL holds a distinct place in the history of computer science as a programming language that emerged from a prestigious mathematical and data science institution in 1969. Its significance lies in its early adoption and implementation of dynamic typing, a feature that provides flexibility by checking types at runtime rather than compile time. This characteristic, combined with its support for multiple paradigms—ranging from procedural to object-oriented programming—made it a versatile tool for its time.

The language serves as a historical bridge between the era of early compiled languages and modern high-level languages. Being influenced by ALGOL, SETL inherits structural concepts from one of the most foundational languages in computing history, while its multi-paradigm nature anticipates the flexibility found in many modern scripting languages. Its continued cataloging by major institutions, such as the Library of Congress and the National Library of Israel, alongside an active web presence, indicates its enduring relevance as a subject of academic and historical study rather than just a obsolete tool.

## Notable For
*   **Multi-Paradigm Support:** Unusual for its time (1969), it spans procedural, structured, and object-oriented paradigms.
*   **Academic Origins:** Developed by the Courant Institute School of Mathematics, Computing, and Data Science, a leading hub for mathematics and computer science.
*   **Dynamic Typing:** Features a dynamic typing discipline, allowing for flexible data handling.
*   **ALGOL Lineage:** Explicitly influenced by ALGOL, connecting it to the lineage of languages that shaped modern syntax.
*   **Enduring Documentation:** Maintains identifiers across major knowledge bases including Wikidata, Freebase, FOLDOC, and the Library of Congress.

## Body

### Origins and Development
SETL is a programming language that was established in **1969**. It was developed by the **Courant Institute School of Mathematics, Computing, and Data Science**. The language is sometimes referenced by the alias **SETL2**, suggesting variations or subsequent iterations of the original design.

### Technical Specifications
The language is defined by its **dynamic typing** discipline, allowing variables to hold values of any type and type checking to occur during execution.

SETL is versatile in its application styles, supporting a wide array of programming paradigms:
*   **Imperative Programming:** Uses statements that change a program's state.
*   **Procedural Programming:** Based on the concept of procedure calls.
*   **Structured Programming:** Utilizes control structures like loops and conditionals.
*   **Object-Oriented Programming:** Organizes software design around data, or objects.

The syntax and structure of SETL were significantly influenced by **ALGOL**, a high-level language historically important for its clarity and structure.

### Identifiers and Classification
SETL is formally classified as a **programming language** intended for communicating instructions to a machine. It maintains a digital footprint through its official website, **setl.org**, and is indexed under several academic and encyclopedic identifiers:
*   **FOLDOC ID:** SETL
*   **Freebase ID:** /m/03ppzh
*   **Library of Congress Authority ID:** sh85120392
*   **National Library of Israel J9U ID:** 987007534066705171
*   **Yale Lux ID:** concept/dfc0378f-0d89-4e9b-bcce-37e2a4817876

The language has a global presence, with Wikipedia entries available in nine languages including English, German, French, Russian, and Chinese.

## References

1. [Source](https://github.com/JohnMarkOckerbloom/ftl/blob/master/data/wikimap)
2. Freebase Data Dumps. 2013
3. [Source](https://www2.cs.arizona.edu/~collberg/Teaching/520/2008/Assignments/SETL.pdf)
4. National Library of Israel Names and Subjects Authority File