SNOBOL:从20年代开始学习这种文本处理语言

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


SNOBOL —面向StriNg的符号语言—是最初在1960年代中期开发的一系列编程语言,主要用于文本处理和字符串分析.

关于版本和实现的快速说明

原始开发人员最后一个稳定的SNOBOL版本是1967年的SNOBOL4。您会看到书籍和网站同时使用“ SNOBOL”和“ SNOBOL4”(有时也使用“ Snobol”)。在1967年以后的所有版本中,所有这些均指代该语言的相同(最终版本).

还有一些扩展和实现。 Snocone是一种语言预处理器,可为该语言提供语法糖,使其更易于使用。 SPITBOL是SNOBOL的编译器;这是特别令人感兴趣的,因为最初认为SNOBOL是不可编译的。还有一种Snowball编程语言,它受SNOBOL的启发并以其命名.

由于这些扩展和其他扩展,某些人在引用仅实现原始SNOBOL4规范而没有任何其他功能的代码时使用短语“ Vanilla SNOBOL”.

关于语言

SNOBOL是专门为文本和字符串操作而创建的。因此,它具有一个相对独特的功能:模式被认为是一流的数据类型。就像任何其他数据结构一样,这允许对模式本身进行操纵。此外,可以将字符串视为代码并进行评估。这允许递归使用模式以及高度复杂的字符串处理和分析。 SNOBOL程序甚至可以更改自己的源代码.

SNOBOL中的模式可以很简单,例如短文本间隔或类似正则表达式的字符类型字符串。但是它们也可能极其复杂,例如对语言语法的完整形式化描述。编程语言解释器可以用SNOBOL编写,也可以用自然语言语法分析,拼写检查和(理论上)翻译引擎编写.

SNOBOL在1960年代和70年代在计算机科学学术界非常受欢迎,并在1980年代被广泛用于人文科学中。在这一点上,它已经基本上不再使用了,而倾向于使用Awk和Perl之类的功能较弱的正则表达式编程。仍然有少数忠实的SNOBOL开发人员,该语言有可能像以往一样有用.

在线教程

  • Snobol4指南,1985年由Mark Emmer撰写的指南;
  • Emmer还撰写了Vanilla Snobol4:教程和参考手册(PDF)和Macro SPITBOL:高性能SNOBOL4语言(PDF);
  • 本教程是在TWENEX.ORG上使用SNOBOL / SITBOL的,用于SNOBOL的SITBOL实现,可在SDF Public Access TOPS-20系统上使用-这里有一些奇怪的特定平台说明,但也有关于SNOBOL本身的很好的教程。
  • SNOBOL4 Powerpoint演示文稿,仅提供有关SNOBOL的演示文稿中的幻灯片,虽然不是很棒的独立介绍,但值得一看,以了解关键概念;
  • 在MTS上使用SNOBOL,这是在大型机密歇根州终端系统上使用该语言的指南-如果您需要在旧版SNOBOL系统上工作,这与Hercules模拟器一起会很有用.

工具类

  • SPITBOL是SNOBOL的编译实现,可在Github上获得;
  • SnoPy,一个Python库,可让您使用基于SNOBOL的文本模式;
  • Mini SNOBOL解释器,用F#编写;
  • SNOBOL4在C中的宏实现.

社区与持续学习

  • Yahoo Email Group,面向SNOBOL开发人员和使用类似文本处理技术的人员;
  • SNOBOL4.com,一个关于语言的网站,该网站由马克·埃默(Mark Emmer)创立,马克·埃默(Mark Emmer)撰写了多本有关该语言的书籍和教程。
  • SNOBOL listserve.

有关SNOBOL的书

  • 一般语言书籍:
    • 拉尔夫·格里斯沃尔德(Ralph Griswold)撰写的《 Snobol4入门》:一种语言的基本介绍,由一位发明家撰写;
    • 拉尔夫·格里斯沃尔德(Ralph Griswold)编写的Snobol4编程语言:被称为“绿皮书”,是有关该语言的经典书籍;
    • Snobol 4中的字符串和列表处理:技术与应用,Ralph Griswold;
    • 程序员对Snobol的介绍,作者:沃德·道格拉斯·莫勒(Ward Douglas Maurer).
  • SNOBOL编程中的特殊主题:
    • SNOBOL人性化编程,作者Susan Hockey;
    • James Gimpel撰写的Snobol 4中的算法;
    • Snobol 4的宏实现:以机器无关的软件开发为例,Ralph Griswold.

我应该学习SNOBOL?

SNOBOL并不是一种非常流行的语言,并且没有很多雇主在寻找SNOBOL开发人员。因此,从职业发展的角度来看,您最好专注于更多需求的语言.

但是,如果您对以文本为中心的计算(搜索,翻译,自然语言处理,文学分析)感兴趣,则可能需要花一些时间使用SNOBOL:尤其是如果您已经突破了常规可以完成的工作的界限表达.

其他文字工具

如果您对SNOBOL感兴趣,则需要查看其他一些工具来处理和分析文本.

  • Natural Language Toolkit,一个用于处理人类语言数据的Python平台;
  • Stanford CoreNLP,一套用于自然语言分析的基于Java的工具;
  • Awk,一种专门用于文本处理的脚本语言;
  • Perl是另一种脚本语言,被广泛认为具有最佳的正则表达式实现;
  • ANTLER是另一种语言识别工具,可用于解析自然语言和人工(计算机)语言。
  • Apache OpenNLP,用于自然语言处理的机器学习工具包;
  • Apache Lucene,一套使用Java和Python的搜索软件工具;
  • GATE,文本工程的通用体系结构,一个“解决几乎所有文本处理问题的框架”;
  • Prolog,一种用于自然语言处理的逻辑编程语言;
  • Icon,是拉尔夫·格里斯沃尔德(Ralph Griswold)研究SNOBOL之后创建的另一种文本处理语言.

您可能还需要阅读Ingersoll,Morton和Farris撰写的“驯服文本:如何查找,组织和操作”。本书对文本处理进行了很好的概述,并提供了使用上面列出的几种软件工具的示例.

最后,查看TAPoR3,这是一个致力于分析文本的工具的网站和在线社区.

进一步阅读和资源

我们有更多与编码和开发有关的指南,教程和信息图:

  • Perl指南和资源:这是使用这种强大的脚本语言入门的绝佳指南.
  • Awk资源:学习大多数计算机上可用的强大脚本语言.
  • Prolog资源:这将使您开始使用这种标志性逻辑编程语言.

自然语言处理成为现实!

自SNOBOL时代以来,自然语言处理科学已走了很长一段路。在我们的信息图表“如何避免爱上聊天机器人”中找到所有相关信息。它涵盖了“思考”计算机的悠久历史-甚至可能使您免于心碎!

您应该学习什么代码?
如何避免爱上聊天机器人

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me