お役立ちコンテンツ | フリーランスエンジニアの案件・求人なら【テクフリ】

LISP(プログラミング言語)の特徴を歴史から紐解く

2021.01.17

mazaichan

LISP

目次

    序文:人工知能の研究と共にLISP(リスプ)も進化

    今回はLISP(リスプ)というプログラミング言語に関して歴史を交えて、ご紹介します。LISP(リスプ)は1958年にジョン・マッカーシー氏によって考案された高級言語の一種です。当時は低水準言語であるアセンブリ言語が開発として中心的に使われており、高級言語はメインとして使われてはいませんでした。LISP(リスプ)は高級言語としてFORTRANに続いて2番目に出てきたプログラミング言語です。

    このLISP(リスプ)はFORTRANと似て計算処理を得意としたプログラミング言語で、計算機科学などの計算処理が重い分野で主に使われることになります。また、計算処理を得意としているので、人工知能などの先進的な分野でも使われるプログラミング言語となります。

    LISP(リスプ)の考案者であるジョン・マッカーシー氏はアメリカ合衆国で活躍した計算機科学および認知科学の分野で活躍した科学者です。実は人工知能研究の第一人者であり、人工知能(Artificial Intelligence)という言葉を1956年のダートマス会議で初めて提唱した方です。

    ジョン・マッカーシー氏はカルフォルニア工科大学で数学の学士号を取り、その後はプリンストン大学へ入学し、数学のPh.Dを取得しました。その後にダートマス大学の助教授になり、マサチューセッツ工科大学に移り、その後にスタンフォード大学で教授になりました。

    その後は人工知能の研究を主に続け、その研究にはLISP(リスプ)が用いられていました。そうして、人工知能の研究と共にLISP(リスプ)も進化していきました。

    LISP(リスプ)の特徴として計算処理を得意としたプログラミング言語と述べましたが、他には型を定義しなくても良い動型言語である・コンパイルなしで実行ができるという特徴があります。

    LISP(リスプ)の誕生:数学におけるラムダ計算をするためのプログラミング言語

    LISP(リスプ)は1958年にジョン・マッカーシー氏によって考案されました。LISP(リスプ)が考案された目的は数学におけるラムダ計算をするためのプログラミング言語を開発するためでした。

    その後に実際に開発が進み、1960年にLISP(リスプ)内で様々な方言が生まれました。方言がたくさん生まれるということは多くの開発者にLISP(リスプ)が支持されているということになります。しかし、当時のLISP(リスプ)は言語に関する仕様が数多くあり、汎用性が失われてしまうので、一度書いたプログラムがコンピューターによっては実行できないというリスクがあります。そこで、LISP(リスプ)を標準化するための動きが出始めます。

    まず1975年にLISP(リスプ)の方言であるSchemeが出ます。マサチューセッツ工科大学のAIラボにてジェラルド・ジェイ・サスマン氏とガイ・スティール・ジュニア氏によって設計がなされました。このSchemeは静的スコープであることが大きな特徴となっています。

    また、もう一つのLISP(リスプ)の方言としてCommon LISP(リスプ)が1984年、1994年にANSIによって標準化されました。1994年の標準化では、「ANSI X3.226-1994 American National Standard for Programming Language Common LISPCommon LISP」というCommon LISPの標準仕様が出版されました。

    ただ、1984年の標準化に比べて、1994年ではその他のプログラミング言語が台頭したこともあり、LISP(リスプ)はあまり使われなくなってしまいました。

    ▼ LISP(リスプ)の特徴

    Common LISP(リスプ)は提案された機能は原則すべて盛り込むといった方針なので、多機能であることが大きな特徴となっています。Schemeは逆に本来のLISP(リスプ)の機能を元にしているので、シンプルさが特徴となっています。

    そして、実際に開発に用いるとなった場合に、手軽に開発がしやすいのがScheme、様々な機能を元に実装をしたい場合はCommon LISPといった使い分けがなされています。

    LISP(リスプ)2大方言であるCommon LISPとSchemeは現在でもメインで使用される方言です。これら2つの標準化された方言を軸として、LISP(リスプ)は発展をしていきます。

    AI

    LISP(リスプ)の黎明期:一部の開発者から支持される

    1980年代以降はCommon LISPとSchemeが標準化としてLISP(リスプ)内の主流な方言となっていましたが、同時に数多くの方言が登場しました。LISP(リスプ)は1980年代以降、他のプログラミング言語の台頭があり、あまり使われなくなってきましたが、2000年代や2010年代に入っても新しい方言が登場しています。

    それだけ一部の開発者からは支持されているプログラミング言語であり、実際に方言が開発されています。実際にCommon LISPとScheme以外の方言だと1994年に登場したRacketや2007年に登場したClojureが有名です。

    RacketはLISPの方言であるSchemeから派生して登場した方言です。Webアプリケーション開発や統計解析、データベースなどのライブラリも豊富にあり、現在もバージョンアップを続けている方言です。

    また、Clojureは関数型プログラミング言語であり、マルチパラダイムプログラミング言語であることが大きな特徴です。インタラクティブな開発がしやすく、マルチスレッドプログラミングを支援する方言です。また、Webアプリケーションを開発する場合の開発速度が早く、早めの開発を要しており資金力がない企業にも採用されている方言です。

    これはClojureで開発した場合に、他のプログラミング言語に比べてコードが短くなるという特徴があり、開発速度が早くなります。大規模開発には向いていませんが、小規模のプログラムを開発するときには向いているプログラミング言語です。

    このように2000年代に入っても新たな方言が出てきており、LISP(リスプ)としての進化は止まりません。

    LISP(リスプ)の成長期:2000年半ばに人工知能の第3次ブームで注目

    LISP(リスプ)の成長期についてです。2000年半ばに人工知能の第3次ブームとしてディープラーニングという技術が話題になりました。これを機に人工知能が注目され、人工知能開発に使うことが出来るLISP(リスプ)も同時に注目を浴びました。

    LISP(リスプ)の特徴として実行と定義の区別がなく、また関数とデータの区別がありません。プログラムの実行時には新たな関数を作り出し、そしてそれを保存することができます。

    これは人工知能のディープラーニングによって自らプログラムを拡張していくという性質と似ており、人工知能と相性が良いプログラミング言語としてLISP(リスプ)が取り上げられています。

    このように、LISP(リスプ)は人工知能のブームと共に取り上げられるようになり、成長を遂げました。

    LISP(リスプ)の現在:人工知能分野で今後も注目

    LISP(リスプ)は現在、AIの開発を中心に使用されています。そして、そのAI開発の現場ではシンプルさが売りのSchemeよりも、多機能さがウリのCommon LISP(リスプ)がメインに使用されています。

    最近ではトレンドとして、関数型プログラミング言語が取り上げられています。LISP(リスプ)も関数型プログラミング言語として有名なプログラミング言語であり、人工知能分野で使われているプログラミング言語であるので、今後も注目され続けることは間違いないでしょう。

    まとめ:LISP(リスプ)は今後も注目され続ける

    プログラム言語の歴史 <LISP(リスプ)編>というテーマで今回はお伝えしました。いかがだったでしょうか? 今回お伝えしたかったことは以下のとおりです。

    1. LISP(リスプ)は1958年にジョン・マッカーシー氏によって考案された高級言語の一種
    2. LISP(リスプ)は計算機科学などの計算処理が重い分野で主に使われ、人工知能開発にも使われている
    3. LISP(リスプ)は関数型プログラミング言語として有名なプログラミング言語であり、人工知能分野で使われているプログラミング言語であるので、今後も注目され続ける

    LISP(リスプ)はそこまで有名なプログラミング言語ではないので、馴染みが無いと思いますが、人工知能開発などで注目されているプログラミング言語の一つです。是非LISP(リスプ)に触れて、LISP(リスプ)の凄さを体感してみてください。

    今すぐシェアしよう!

    B!
    <span class="translation_missing" title="translation missing: ja.layouts.footer.icon_back_to_top">Icon Back To Top</span>
    TOP