|
かたこと, 舌足らずに話す =========================== 「 LISP 」を含む部分一致用語の検索リンク〔 1 件 〕 ・lisp : かたこと, 舌足らずに話す
LISPは、長い歴史を持ち、特徴的で完全に括弧で囲われたポーランド記法〔 〕 によるプログラミング言語である。 1958年にはじめて設計され、LISPは今日、広範囲に使用される高水準プログラミング言語の中でFORTRANに次いで2番目に古いものであるが、FORTRAN同様LISPは初期から非常に大きな変化を続けている。 これまでに多数の方言が存在してきたが、今日最も広く知られるLISP方言は、Common LispとSchemeである。 元々、LISPは、アロンゾ・チャーチのラムダ計算表記法に影響を受け、コンピュータープログラムのための実用的かつ数学的な表記法として作られた。 そして、すぐに人工知能研究に好まれるプログラミング言語になった。 最初期のプログラミング言語として、LISPは計算機科学にて、木構造、ガベージコレクション、動的型付け、条件分岐、高階関数、再帰、セルフホスティング、コンパイラを含む多くのアイディアを切り開いた。 LISPの名前は、"LISt Processor"に由来している。 リストはLISPの主要なデータ構造であり、LISPソースコードはそれ自体がリストからできている。 その結果、LISPプログラムはソースコードをデータとして操作することができ、プログラマーは、マクロ・システムで新しい構文やLISP埋め込みの新しいDSLを作成することができる。 コードとデータの互換性は、LISPにそのすぐに認識できる構文を与える。 すべてのプログラム・コードは''S式''または入れ子のリストとして書かれる。 関数呼び出しまたは構文は先頭が関数または演算子の名前で、その続きが引数であるリストとして書かれる。 具体的には、3つの引数を取る関数 f は、(f arg1 arg2 arg3) として呼び出される。== LISPの歴史 == LISPは1958年にジョン・マッカーシーがMITにいた期間に考案された。マッカーシーは1960年にACMの学会誌''Communications of the ACM''に "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I"〔 〕 という題名の論文(「パートII」が発表されることはなかった)を発表した。この論文において(それを言語とみなし純LISPとも言われるが)少数の単純な演算子と関数の表記法で、自分自身を評価するeval関数(超循環評価器、w:Meta-circular evaluator)を記述できることが示された。 1955年または1956年からはじまった、IPLは、最初の人工知能言語で、リスト処理や再帰などの多くの概念をすでに含んでいたが、その後すぐにそういった分野ではLISPが使われるようになった。 前述の超循環評価器はLISP自身で実装されているが、ひとたびLISP以外の言語で実装すればそれは実際にLISPを解釈実行できるインタプリタとなる。マッカーシーは自分の論文中にある評価器は単なる理論上の存在で、そのようにしてインタプリタを実装可能であると考えていなかった。しかし、マッカーシーのもとで大学院生であったスティーブ・ラッセルは論文を読んだ後、機械語でそれを実装してみせ、マッカーシーを驚かせた。そうしてLISPインタプリタが生まれた。 超循環評価器は、チューリングマシンにおける万能チューリングマシンに相当する。(当初LISPプログラムの表現法としていた)M式を、LISP自身が扱うデータ構造に変換したS式は、万能チューリングマシンの入力(テープの初期状態)として与えられるチューリングマシンの記述に相当する。マッカーシーはやはり、LISPプログラムのS式による表現はevalを考えるための論文の中だけのものと考えており、実際のプログラムをS式で書くようになるとは考えていなかった。 LISPは当初IBM 704上で実装されたが、その計算機のレジスタを構成する部分の名前が、対を分解する関数 car ()、cdr ()の名前の由来となった。爾来、ほとんどのLISPの方言において、car とcdr はそれぞれlistの最初の要素と、最初の要素以外を返す関数の名前となっている。その発端からLISPは、人工知能研究のコミュニティ、特にPDP-10システムのユーザーには近しい存在であった。AIコミュニティでは、LISPはプログラミング言語の実装用言語としても用いられた。有名なAIシステムSHRDLUの実装言語のMicro Plannerは、MACLISPで実装されている。 また、1970年代には、LISPで実装されたREDUCEや、Macsyma等の数式処理システムの需要が高まるにつれ高速なLISPの処理系の需要も高まり、LISPを高速に処理するいわゆるLISPマシンの動機の一つとなった。LISPマシンは、タグアーキテクチャや、ハードウェアスタック等LISP向けのハードウェア機構により、型のディスパッチや関数呼出し、ガベージコレクションの高速化を実現した。 LISPは実装の容易さゆえに非常に多くの方言を生んだ。マクロを用いれば文法構造それ自体を拡張できるので、ある意味では利用者ごとに方言があるとさえいってよい。1970年代から1980年代にかけては、大きく分けてMACLISP系とInterlisp系の二つの主流が存在し、後のLISP方言に影響を与えている。 1980年代と1990年代には、たくさんのLISP方言を一つの言語に統合しようという努力がなされた。その結果として設計された新しい言語Common Lispは基本的にそれらの方言のスーパーセットであり、それらを置き換えることになった。1994年にANSIはCommon Lispの標準仕様「ANSI X3.226-1994 American National Standard for Programming Language Common LISP」を出版した。しかし、このときまでには、全盛期に比べるとLISPの市場は小さくなっていた。 一方で1970年代中ごろには、LISPベースでプログラミングに必要な言語機能を極限まで抽象化したSchemeが発生し、こちらも現在の主流の一つになっている。 LISPは現在でも広く使われている年代物の言語の一つである。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「LISP」の詳細全文を読む スポンサード リンク
|