SETL语言

科技工作者之家 2020-11-17

SETL语言(SETL language)是基于集合论的甚高级语言。它提供了描述有限集和元组及其有关操作和控制结构的手段,以提高开发功效,增加程序的易读性。该语言由美国纽约大学J.T.Schwartz等人于1975年提出。

SETL语言以可移植的方式实现,已在IBM 370,DEC10和VAX,CDC 6600等机器上运行。在纽约大学、加州大学伯克莱分校等大学的课程教学中,学生们已使用SETL语言进行算法设计。

概述SETL语言(SETL language)是基于集合论的甚高级语言。它提供了描述有限集和元组及其有关操作和控制结构的手段,以提高开发功效,增加程序的易读性。该语言由美国纽约大学J.T.Schwartz等人于1975年提出。

过去半个世纪的数学经验是SETL的主要依据之一。特别是数理逻辑基础研究披露一种功能很强的公理化集合论。从基本概念开始,用这种理论的术语能迅速地建立起整个数学结构——从抽象代数到复杂的函数理论。SETL从它所模仿的集合论那里继承了同样的优点。由于以通常的有限集合作为基本对象,SETL是一种甚高级语言。它包含有数据对象的复杂结构以及在这些复杂结构上的全局运算,把用户从烦琐的内部表示和程序优化中解放出来,使它们得以专心研究与自己的问题紧密相关的抽象结构及相互联系。加上“左方调用”、“流程语句”等有特色的语言成份,SETL成为程序设计语言之林中别具一格的成员。1

功能SETL在支持类PASCAL程序设计语言的大部分标准数据结构的基础上,能够支持集合和元组。SETL的集合必须是有限集,元组的元素个数也必须是有限的,但它们都可以任意嵌套,集合可以以枚举的形式给出,也可以以|x in S|C}(即集合S中满足条件C的所有元素构成的集合)的形式给出。集合上的操作包括并,交、差,对称差、增添或删除元素。元素的个数、任取一元素等。集合上的谓词包括相等、属于、子集等、元组是元素的有序序列,其操作包括并置,增添或删除元素等,元组的谓词有相等,属于等。映射看成是二元组的集合,映射的操作包括取定义域,取值域、复合等。

SETL语言支持描述软件规约的机制之一是它允许程序中使用全称量词和存在量词,但这些量词中的约束变元必须受限于某一有限集,即全称和存在的含义是就该有限集而言的。

SETL的控制结构包括通常的条件,分情况,循环、转移,还有其他与集合和元组有关的结构。与集合和元组有关的控制结构的基本形式为(for v in SIC)SS end,其含义是循环变量v依次取集合或元S中满足条件C的值,执行语句SS。S为集合时v取值的次序任意,s为元组时依次取其元素的值。

SETL允许定义通常的过程,并支持模块定义及分别编译。SETL提供一种表示语言,程序人员可用来指导SETL编译程序如何实现特殊的集合。SETL编译程序通过分析输入的程序,确定其中集合、量词、循环结构的实现方法。SETL通过提供集合、元组、映射等复合结构,增强了表达能力,给用户的描述带来方便,但代价是其编译产生的目标程序的效率较差。

SETL语言以可移植的方式实现,已在IBM 370,DEC10和VAX,CDC 6600等机器上运行。在纽约大学、加州大学伯克莱分校等大学的课程教学中,学生们已使用SETL语言进行算法设计。2

本词条内容贡献者为:

宋春霖 - 副教授 - 江南大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。