ソフトウェア
初級

Lisp (1958年)(リスプ)

Lispは1958年MITジョン・マッカーシー (John McCarthy) が開発した世界初の関数型プログラミング言語でAI 研究・Symbolic Programming・S 式 (S-expression) ・動的型付け採用しProlog・Scheme・Common Lisp・Clojure 等の関数型言語の祖先となった歴史的言語。

0 回閲覧
0 いいね
2026/5/13 更新
関連タグ
lisp
1958
john-mccarthy
mit
ai-language
s-expression
functional-programming
garbage-collection
clojure
scheme
programming-history

Lisp (1958年)

概要

Lispは1958年MITジョン・マッカーシー (John McCarthy・後Stanford AI Lab 創設者・1971年Turing Award) が開発した世界初の関数型プログラミング言語でAI (Artificial Intelligence) 研究のため設計・Symbolic Programming (記号処理) ・S 式 (S-expression・括弧で囲まれたリスト) ・動的型付け・自動メモリ管理 (Garbage Collection 世界初) ・First-class Function (関数を値として扱える) ・Macro (コード生成メタプログラミング) 採用しProlog (1972年) ・Scheme (1975年MIT Sussman/Steele) ・Common Lisp (1984年ANSI 標準化) ・Clojure (2007年Rich Hickey・JVM ベース)・JavaScript (1995年・Brendan Eich 「Lisp の影響受けた」公言) ・Python (1991年・関数型機能) 等の言語の祖先となった歴史的言語。1959-1980年代AI ブーム期に主流・1990年代以降衰退も2010年代Clojure で復活。

主な特徴・仕組み

  • 発表: 1958年MIT・John McCarthy・「Recursive Functions of Symbolic Expressions and Their Computation by Machine」論文
  • 元代名: 「LISt Processor」(リスト処理)
  • 言語パラダイム: 関数型 (世界初) ・Symbolic Programming・Dynamic Typing
  • 構文: S 式 ( (function arg1 arg2) ・括弧優位)・括弧 (parentheses) 多用
  • GC (Garbage Collection): 世界初 (自動メモリ管理・後Java/Python/JavaScript 採用)
  • マクロ: コード生成メタプログラミング (S 式自身が言語データ)
  • REPL: Read-Eval-Print Loop (対話型) 世界初・1960年代から
  • 方言: Maclisp (1966)・InterLisp (1967)・Scheme (1975)・Common Lisp (1984)・Emacs Lisp (1985)・Clojure (2007)

Lisp 主要方言の系譜

方言年開発者主な用途
Lisp 1.51962MITAI 研究初期
Maclisp1966MIT AI LabMacsyma (数式処理・後Mathematica 祖先)
InterLisp1967BBN→Xerox PARCAI 研究
Scheme1975MIT Sussman/Steele教育・実用言語
Common Lisp1984Guy Steele 主導 ANSI工業標準 (現在も主流)
Emacs Lisp1985Richard StallmanEmacs エディタの拡張言語
Racket (旧PLT Scheme)1994Matthias Felleisen教育・関数型研究
Clojure2007Rich HickeyJVM ベース・関数型復活
Hy2013Paul TagliamontePython AST 上のLisp

S 式 (S-expression) 革新

Lisp の特徴的構文:

  • 構造: ( function arg1 arg2 ... ) の入れ子リスト
  • 例: (+ 1 2 3) → 6・(if (> x 0) "positive" "negative")
  • メリット: 構文と AST (抽象構文木) が一致・マクロでコード生成容易
  • デメリット: 括弧多用 ("LISP = Lots of Irritating Stupid Parentheses" 揶揄)
  • 業界影響: 関数型言語 (Haskell・F#) ・JavaScript・Python の式表現に影響

Garbage Collection (世界初)

1958年Lisp で初対応:

  • 動作: 不要メモリを自動的に解放・プログラマがmalloc/free 不要
  • 競合: C (1972年) ・C++ (1985年) は手動メモリ管理・GC 採用は2000年代以降
  • 後継: Java (1995年) ・C# (2002年) ・Python (1991年) ・JavaScript (V8 2008年) ・Go (2009年) ・全現代言語で標準

AI ブーム期 (1956-1980年代)

1956年ダートマス会議 (AI 創出) からLisp の黄金期:

  • 1956年Dartmouth Conference: AI 用語誕生 (John McCarthy 命名)
  • 1958-1980年代Lisp Machines: AI 専用ワークステーション (Symbolics・LMI・TI Explorer)
  • 代表的AI システム: SHRDLU (1968年)・MYCIN (1976年医療診断)・MIT AI Lab
  • AI 冬の時代 (1987年-): Lisp Machine 失敗・Lisp 衰退
  • 2010年代AI 再興: Python (TensorFlow/PyTorch) 主流・Lisp は教育・関数型復活で生存

採用システム (1960-2010年代)

  • 1958-1980年代AI 研究: MIT・Stanford・Carnegie Mellon・SRI International の AI 研究所
  • Emacs エディタ (1976年): Richard Stallman・Emacs Lisp で拡張可能
  • AutoCAD (1980年代): AutoLISP で拡張機能 (現代も継続)
  • Google AdWords: 初期 (2003年) は Lisp ベース・2010年代Java 移行
  • NASA Mars Pathfinder (1997年): 一部Common Lisp 採用
  • Hacker News (2007年Paul Graham): Arc (Lisp 方言) ベース
  • 2010年代Clojure: Walmart・Apple・Cisco・Citigroup 採用

関連技術との違い

項目Lisp (1958)Fortran (1957)C (1972)Python (1991)
パラダイム関数型 (世界初)命令型 (数値計算)命令型 (システム)マルチパラダイム
型付け動的静的静的動的
GCあり (世界初)なしなしあり
用途AI 研究・関数型科学技術計算システムプログラミング汎用・データサイエンス
構文S 式 (括弧)Fortran 式C 風インデント

よくある質問 (FAQ)

Q1: なぜLisp は AI 研究で使われたか? A: (1) Symbolic Programming (記号処理) で論理推論・知識表現に最適・(2) First-class Function でメタプログラミング容易 (AI は自己改変プログラム必要)・(3) S 式とAST が一致でコード生成柔軟・(4) GC で大規模データ構造管理容易・(5) Lisp Machines (AI 専用HW・1980年代) でAI 性能優位・全要因で「AI = Lisp」と1956-1990年代評価された。

Q2: 現代でLisp はどこで使われているか? A: (1) Emacs Lisp (Emacs エディタ 1976年-2024年継続) ・(2) AutoCAD AutoLISP (1980年-現代継続) ・(3) Clojure (2007年-・Walmart/Apple/Cisco) ・(4) Common Lisp 商用 (Allegro CL・LispWorks) ・(5) Scheme/Racket (大学MIT/Northwestern 教育) ・(6) Hacker News (Arc Lisp 方言) ・(7) ITA Software (Google 買収・航空券検索) ・(8) Grammarly (一部Clojure 採用) 等。

Q3: Lisp を学ぶ価値は? A: 関数型プログラミングの基礎・現代言語 (Python/JavaScript/Ruby) の関数型機能の理解・メタプログラミング/マクロの概念・Computer Science 教育標準 (SICP「コンピュータプログラムの構造と解釈」MIT Press 1985年Sussman/Abelson 教科書) 。直接Lisp 採用機会少ないが思考訓練で他言語へ応用可能。

まとめ

  • 1958年MITジョン・マッカーシー開発
  • 世界初の関数型プログラミング言語
  • S 式・動的型付け・GC 世界初
  • AI 研究のため設計
  • Clojure/Scheme/Common Lisp 祖先
この記事について
カテゴリーソフトウェア
難易度初級
作成日2026/5/13