<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=SETL</id>
	<title>SETL - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=SETL"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=SETL&amp;action=history"/>
	<updated>2026-07-14T12:09:09Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=SETL&amp;diff=3221852&amp;oldid=prev</id>
		<title>imported&gt;ExultantEditor 来自 2025年12月26日 (五) 17:32</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=SETL&amp;diff=3221852&amp;oldid=prev"/>
		<updated>2025-12-26T17:32:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NoteTA|G1=IT}}&lt;br /&gt;
{{Infobox programming language&lt;br /&gt;
| logo                   = &lt;br /&gt;
| paradigm               = [[编程范式|多范式]]: [[指令式编程|指令式]], [[过程式编程|过程式]], [[结构化编程|结构化]], [[面向对象编程|面向对象]]&lt;br /&gt;
| released               = {{Start date and age|1969}}&lt;br /&gt;
| designer               = (Jack) {{le|Jacob T. Schwartz}}&lt;br /&gt;
| developer              = [[科朗数学研究所]]&lt;br /&gt;
| latest release version = 1.1&lt;br /&gt;
| latest release date    = {{Start date and age|2005|01|07}}&lt;br /&gt;
| typing                 = [[类型系统|动态]]&lt;br /&gt;
| implementations        = &lt;br /&gt;
| dialects               = &lt;br /&gt;
| website                = {{URL|https://setl.org/setl/}}&lt;br /&gt;
| influenced_by          = [[ALGOL 60]]&lt;br /&gt;
| influenced             = SETL2, ISETL, SETLX, [[ABC (程式语言)|ABC]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SETL&amp;#039;&amp;#039;&amp;#039;（SET语言）是一种基于[[数学]][[集合论]]的[[领域特定语言|领域特定]]的[[高级编程语言]]。它最初由（Jack）Jacob T. Schwartz于二十世纪六十年代末在[[纽约大学]][[科朗数学研究所]]开发。&lt;br /&gt;
&lt;br /&gt;
== 设计 ==&lt;br /&gt;
SETL提供两种基本的聚合数据类型：无序的[[集合]]和序列（后者也称为[[元组]]）。集合和元组的元素可以是任意类型，包括集合和元组本身。[[关联数组|映射]]是作为[[有序对]]（长度为2的元组）的集合提供的，并且可以具有任意的域和范围类型。SETL中的原始操作包括集合成员资格、联合、交集和幂集构造等。 &lt;br /&gt;
&lt;br /&gt;
SETL提供使用[[一阶逻辑|一阶谓词逻辑]]的[[全称量化|全称]]和[[存在量化|存在量词]]构造的量化布尔表达式。 &lt;br /&gt;
&lt;br /&gt;
SETL提供了几个[[迭代器]]，可以在聚合数据结构上生成各种循环。&lt;br /&gt;
&lt;br /&gt;
== 例子 ==&lt;br /&gt;
打印从2到N的所有素数：&lt;br /&gt;
 print([n in [2..N] | forall m in {2..n - 1} | n mod m &amp;gt; 0]);&lt;br /&gt;
这个表示法类似于[[列表推导式]]。&lt;br /&gt;
&lt;br /&gt;
阶乘过程的定义：&lt;br /&gt;
 procedure factorial(n); -- calculates the factorial n!&lt;br /&gt;
   return if n = 1 then 1 else n * factorial(n - 1) end if;&lt;br /&gt;
 end factorial;&lt;br /&gt;
&lt;br /&gt;
阶乘(n &amp;gt; 0)的更常用的SETL表达：&lt;br /&gt;
 */[1..n]&lt;br /&gt;
&lt;br /&gt;
== 用途 ==&lt;br /&gt;
在二十世纪七十年代，SETL被移植到BESM-6，ES EVM和其他俄罗斯的计算机系统。 &lt;br /&gt;
&lt;br /&gt;
SETL用于早期实现编程语言[[Ada]]，名为NYU Ada / ED翻译器。&amp;lt;ref&amp;gt;{{Cite journal|title=The NYU Ada Translator and Interpreter|last=Dewar|first=Robert B. K.|last2=Fisher Jr.|first2=Gerald A.|date=November 1980|journal=ACM SIGPLAN Notices - Proceedings of the ACM-SIGPLAN Symposium on the Ada Programming Language|issue=11|doi=10.1145/948632.948659|volume=15|pages=194–201|isbn=0-89791-030-3|last3=Schonberg|first3=Edmond|last4=Froelich|first4=Robert|last5=Bryant|first5=Stephen|last6=Goss|first6=Clinton F.|last7=Burke|first7=Michael}}&amp;lt;/ref&amp;gt;这后来成为第一个经过验证的Ada实现，于1983年4月11日通过认证。&amp;lt;ref&amp;gt;{{Cite web|url=http://www.dtic.mil/docs/citations/ADA136759|title=Ada Compiler Validation Summary Report: NYU Ada/ED, Version 19.7 V-001|author=SofTech Inc., Waltham, MA|date=1983-04-11|accessdate=2010-12-16|archive-date=2017-06-07|archive-url=https://web.archive.org/web/20170607044753/http://www.dtic.mil/docs/citations/ADA136759|dead-url=no}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
根据[[吉多·范罗苏姆]]的说法，[[Python]]的先驱语言[[ABC (程式語言)|ABC]]，受到了SETL的启发：“兰伯特梅尔滕斯在纽约大学的SETL小组工作了一年，然后才开始进行最终的ABC设计！”&amp;lt;ref&amp;gt;{{Cite web |url=http://mail.python.org/pipermail/python-dev/2000-August/008881.html |title=SETL (was: Lukewarm about range literals) |accessdate=2019-04-24 |archive-date=2011-05-14 |archive-url=https://web.archive.org/web/20110514231628/http://mail.python.org/pipermail/python-dev/2000-August/008881.html |dead-url=yes }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 语言变种 ==&lt;br /&gt;
“SET语言2”（SETL2）是SETL的一个不向后兼容的后继者，由纽约大学Courant数学科学研究所的柯克斯奈德于二十世纪八十年代后期创建。与其前身一样，它基于有限集的理论和符号，但也受到Ada语言的语法和风格的影响。 &lt;br /&gt;
&lt;br /&gt;
“交互式SET语言”（ISETL）是[[离散数学]]中使用的SETL变体。&lt;br /&gt;
&lt;br /&gt;
== 参考 ==&lt;br /&gt;
{{reflist|2}}&lt;br /&gt;
&lt;br /&gt;
== 进一步阅读 ==&lt;br /&gt;
* Schwartz，Jacob T.，“将集合论用作程序规定和编程的语言”。 纽约大学Courant数学科学研究所，1970年。 &lt;br /&gt;
* Schwartz，Jacob T.，“关于编程，关于SETL项目的中期报告”，计算机科学系，Courant数学科学研究所，纽约大学（1973）。 &lt;br /&gt;
* Schwartz，Jacob T.，Dewar，RBK，Dubinsky，E。和Schonberg，E。， &amp;#039;&amp;#039;Programming With Sets：An Introduction to SETL&amp;#039;&amp;#039; ，1986。 {{ISBN|0-387-96399-5}} [[International Standard Book Number|国际标准书号]] &amp;amp;nbsp; [[Special:BookSources/0-387-96399-5|0-387-96399-5]] 。&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
&lt;br /&gt;
* {{Official website|setl.org/setl}}  ，GNU SETL &lt;br /&gt;
* [http://www.settheory.com 在SETL和其他东西上编程]{{Wayback|url=http://www.settheory.com/ |date=20200803233031 }} &lt;br /&gt;
{{程序设计语言}}&lt;br /&gt;
&lt;br /&gt;
[[Category:程序设计语言]]&lt;br /&gt;
[[Category:学术的编程语言]]&lt;br /&gt;
[[Category:集合论]]&lt;/div&gt;</summary>
		<author><name>imported&gt;ExultantEditor</name></author>
	</entry>
</feed>