濃縮還元オレンジニュース

((Pythonで)書く(Lisp)インタプリタ)

この記事を読むのに必要な時間:およそ 0.5 分

Peter Norvig氏による記事の翻訳です。Peter Norvig氏は過去に自然言語処理や人工知能に関する研究を行っており,現在はGoogleの研究部長を務めています。最近ではNorvig氏が著した書籍が『実用Common Lisp』⁠翔泳社)というタイトルで翻訳されました。

内容はタイトル通り,Pythonにて簡易Lispインタプリタを実装するチュートリアルになっています。記事ではLispの方言であるSchemeの基本的構文をいくつか採用し「Lispy」と名付けています。if文や関数定義,lambda(ラムダ;λ)式などが含まれておりREPLによる対話形式の実行環境もありながらわずか90行程度で実装できています。コード解説は大きく構文解析(parse)と実行(eval)に分かれており,それぞれPythonのコード片を示しながら丁寧に解説しています。

この記事で実装されたLispyは,Lispの重要な概念であるマクロや末尾再帰最適化,継続などは実現できていませんが,これらの機能を追加したバージョンを実装する,いわゆる続編にあたる記事も公開しています。

ちなみに,Hacker NewsのトピックAsk PG: Lisp vs Python(2010)にて,Norvig氏はLispとPythonについて意見を述べています。Pythonを「優れたpseudocode(擬似コード)⁠と評しており,⁠小さなプログラムにとても向いていてGoogle内やネットにいろんなライブラリがそろっている」ため,最終的にPythonを選択するようになったようです。また「大規模だったり速度が必要なプロジェクトはLispのほうが有利だと信じている。しかし,主なる目的が大学生を相手にした教育などの意志疎通ではPythonのほうが優位だと思う」とも述べています。

URLhttp://www.aoky.net/articles/peter_norvig/lispy.htm

著者プロフィール

角田直行(かくだなおゆき)

普段はお仕事でPHPやJavaを使ってWeb開発をしています。一部でセレブエンジニアとか言われてますが,全然セレブじゃありません。

コメント

コメントの記入