SNOBOL:60年代からこのテキスト処理言語について学ぶ

開示: あなたのサポートはサイトの運営を維持するのに役立ちます!このページで推奨する一部のサービスについては、紹介料を稼ぎます.


SNOBOL — StriNg指向でsymBOlic言語—は、もともと1960年代中頃に開発されたプログラミング言語のファミリーで、主にテキスト処理と文字列分析を目的としています。.

バージョンと実装に関する簡単なメモ

元の開発者によるSNOBOLの最後の安定版リリースは、1967年のSNOBOL4でした。本とWebサイトの両方で「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チュートリアル、Mark Emmerによる1985年のチュートリアル。
  • Emmerは、Vanilla Snobol4:チュートリアルとリファレンスマニュアル(PDF)およびMacro SPITBOL:High Performance SNOBOL4 Language(PDF)も執筆しました。
  • TWENEX.ORGでSNOBOL / SITBOLを使用するこのチュートリアルは、SDFパブリックアクセスTOPS-20システムで使用するためのSNOBOLのSITBOL実装用です。ここには奇妙な特定のプラットフォームの説明がありますが、SNOBOL自体に関する優れたチュートリアルもあります。
  • SNOBOL4 Powerpointプレゼンテーション。これは、SNOBOLに関するプレゼンテーションのスライドのみを提供します。スタンドアロンの優れた紹介ではありませんが、主要な概念の概要を確認する価値はあります。
  • MTSでのSNOBOLの使用、メインフレームミシガンターミナルシステムで言語を使用するためのガイド—これは、レガシーSNOBOLシステムで作業する必要がある場合に、Herculesエミュレータと一緒に役立ちます。.

ツール

  • Githubで入手可能なSNOBOLのコンパイル済み実装であるSPITBOL。
  • SnoPy:SNOBOLベースのテキストパターンを使用できるPythonライブラリ。
  • F#で記述されたミニSNOBOLインタープリター。
  • CでのSNOBOL4のマクロ実装.

コミュニティと継続的な学習

  • Yahoo Email Group、SNOBOL開発者および同様のテキスト処理テクノロジーを使用している人々向け。
  • SNOBOL4.com、言語に関するいくつかの本やチュートリアルを執筆しているMark Emmerによって設立された会社の言語に関するウェブサイト。
  • SNOBOLリストサーブ.

SNOBOLに関する本

  • 言語に関する一般的な本:
    • Ralph GriswoldによるSnobol4 Primer:発明者の一人が書いた、言語の基本的な紹介。
    • Ralph GriswoldによるSnobol4プログラミング言語:「グリーンブック」と呼ばれる、これはその言語に関する古典的な本です。
    • Snobol 4の文字列とリストの処理:テクニックとアプリケーション、Ralph Griswold、
    • プログラマーによるSnobolの紹介、ワードダグラスモーラー.
  • SNOBOLプログラミングの特別なトピック:
    • スーザンホッケーによる人文科学のためのSNOBOLプログラミング;
    • James GimpelによるSnobol 4のアルゴリズム。
    • Snobol 4のマクロ実装:Ralph Griswoldによる、マシンに依存しないソフトウェア開発のケーススタディ.

私はSNOBOLを学ぶべきですか?

SNOBOLはそれほど人気のある言語ではなく、SNOBOL開発者を探している雇用主は多くありません。ですから、キャリアアップの観点からは、より需要の高い言語に集中する方が良いでしょう.

ただし、テキスト中心のコンピューティング(検索、翻訳、自然言語処理、文学的分析)に関心がある場合は、SNOBOLで少し時間を費やすことをお勧めします。特に、通常の方法で達成できることの境界をすでに広げている場合は、表現.

その他のテキストツール

SNOBOLに興味がある場合は、テキストを処理および分析するためのこれらの他のツールのいくつかをチェックしてください。.

  • 自然言語ツールキットは、人間の言語データを扱うためのPythonプラットフォームです。
  • 自然言語分析用のJavaベースのツールスイートであるStanford CoreNLP。
  • Awk、特にテキスト処理用に設計されたスクリプト言語。
  • Perlは、他のスクリプト言語であり、最も優れた正規表現の実装を利用できると広く考えられています。
  • ANTLERは言語認識のためのもう1つのツールであり、自然言語と人工(コンピューター)言語の両方を解析するために使用できます。
  • Apache OpenNLP、自然言語処理用の機械学習ツールキット。
  • Apache Lucene、JavaおよびPythonの検索ソフトウェアツールスイート。
  • GATE、「ほとんどすべてのテキスト処理問題を解決する」ためのフレームワークであるテキストエンジニアリングの一般的なアーキテクチャ。
  • 自然言語処理のために発明された論理プログラミング言語であるプロローグ。
  • アイコン、ラルフグリスウォルドがSNOBOLでの作業の後に作成した別のテキスト処理言語.

また、Ingersoll、Morton、Farrisによる「Taming Text:How to Find、Organize、and Manipulate It」を読むこともできます。この本は、上記のソフトウェアツールのいくつかを使用した例とともに、テキスト処理の優れた概要を提供します.

最後に、テキストを分析するためのツールに特化したWebサイトおよびオンラインコミュニティであるTAPoR3を確認してください。.

参考資料とリソース

コーディングと開発に関連するガイド、チュートリアル、およびインフォグラフィックが他にもあります。

  • Perlガイドとリソース:これは、この強力なスクリプト言語を使い始めるための優れたガイドです.
  • Awkのリソース:ほとんどのコンピューターで使用できるこの強力なスクリプト言語を学ぶ.
  • プロローグのリソース:これにより、この象徴的なロジックプログラミング言語を使い始めることができます.

自然言語処理の実現!

自然言語処理の科学は、SNOBOLの時代から長い道のりを歩んできました。詳細については、インフォグラフィックの「チャットボットに恋をしないようにする方法」をご覧ください。 「思考する」コンピュータの長い歴史をカバーし、傷ついた心からあなたを救うかもしれません!

どのコードを学ぶべきですか?
チャットボットと恋に落ちないようにする方法

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map