版权归原作者所有,如有侵权,请联系我们

[科普中国]-SNOBOL 语言

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

SNOBOL是描述字符串处理算法的一种语言。它是一种较晚研制出的语言,通用性较强,但主要是进行字符串处理。与其他字符串管理语言相比,它的功能最强。

SNOBOL语言主要用于文本处理应用领域。基本的数据类型主要是字符串。对字符串的主要操作是对文本的分析和综合,这些文本是自然语言文本,代数公式文本等等。

SNOBOL简史SNOBOL是在1962年由Bell实验室的一个研究小组研制出来的,用来处理它们自己的符号公式。在1966年出现的改进扩充型称为SNOBOL 3,并在几种机器上运行。后来又进一步做了强化,称为SNOBOL 4,它的通用性更强。SNOBOL 4是第三种型号,它是在1969年9月份研制出来的。1

SNOBOL语言是为字符串处理提供完善功能的一种独特的、较为丰富和复杂的程序设计语言。但它实现起来比PL/1简单得多。它是行处理语言,也能用作表加工。它的特点是具有定义新数据类型的功能(如模式数据类型),并能在执行时动态检查数据结构与相应运算是否一致。例如,整数运算的运算对象是否是整数,浮点运算的运算对象是否是浮点数。用这种语言能设计出一个高质量的编译程序,因此它已成为十几种常用的、广泛流行的语言之一。为了增加语雷的移植能力,它定义一种与机器相对无关的宏语言。这样,只要实现了宏语言,语言的移植就能在新机器上容易实现。国外已有若干种机器配备了SNOBOL系统,还有专门的SN0BOL实现语言。2

起源SNOBOL(发音为snowball;Griswold等,1971)语言是20世纪60年代早期由贝尔实验室(Bell Laboratories)的三个人D.J.Farber、R.E.Griswold和I.P.Polonsky设计的(Farber等,1964)。它是专为文本处理而设计的。SNOBOL语言的核心是一些用于字符串模式匹配的强大的运算符。SNOBOL语言早期的应用之一是编写文本编辑器。由于SNOBOL语言的动态特征,它比其他的语言慢,因此不再用于这样的程序了。不过SNOBOL语言仍然是一种有生命力且有支持的语言,在一些不同的应用领域中用于各种文本处理任务。3

SNOBOL的各种编译程序SNOBOL在很多机器上运行,主要是:

Burroughs B6700系统

CDC Cyber,6000系统

DEC PDP一10,PDP-15系统

Honcywell 600,6000系列

IBM360,370系列

Univac 1100系列

与其他的语言不同,SNOBOL的编译程序可为许多计算机厂家所通用。1

应甩范围SNOBOL语言主要用于文本处理应用领域。基本的数据类型主要是字符串。对字符串的主要操作是对文本的分析和综合,这些文本是自然语言文本,代数公式文本等等。

在文本处理中分析的基本单元是字符。相邻的、长度可变的非空白字符是一个字,因此,文本处理分析所涉及的主要问题是对每个字的隔离和处理。

文本处理应用中的输入一输出功能也是不同的,要按照被传送的信息,对定长记录强加上一些人为的边界。文本的长度一般说来是可变的,输入单元可以是一个字,一个句子,或一个段落。一页称为一个输入一输出单元,在一页中程序执行缓冲功能,即可把一页的信息暂存起来,可以把一页放到已有的段落、句子或字中,或者单独建立字、句子或段落。

最新的SNOBOL文本有新的工具,使它具有更多的通用语言的特点。这些工具包括浮点算术运算,阵列和表格结构。1

SNOBOL程序的书写SNOBOL程序是一个语句序列,这些语旬是说明算法的。这些算法是字符串处理。

SNOBOL语句可以说明很多功能。例如,基本赋值语句,比较和转移操作可以结合到一个语句中。

此外,SNOBOL的语句类型几乎没有什么区别。因此,有经验的程序人员很容易掌握这种语言。程序人员的任务是用这种语言去有效地处理文本。通常,这比科学或数据处理领域更为困难,因为这种编程技术更复杂,需要的知识面更广泛。1

本词条内容贡献者为:

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