2日間みっちり! Lispチュートリアル & 事例紹介セミナー 2011に行ってきました 2日目 — #:g1

Posted 2011-11-21 09:49:00 GMT

Lispセミナー2日目。ざっくりした感想のレポートです。

Using NoSQL Technologies to enrich AllegroGraph / Jans Aasman

1日目のセッションと大体同じ内容で、MonboDBや、SOLRのようなインターフェイスへの取り組みのについてのお話でした。

京大におけるLispを使ったプログラミング教育 / 湯淺太一

「情報処理」 Vol.52 No.9 のぺた語義:京大における Lisp を使ったプログラミング教育を下敷きにしたお話で、おおまかな内容は同じでしたが、色々ジョークもあり面白い内容でした。
内容は、題の通り、京大でのプログラミング教育のお話で具体的には、教材にSICPとレゴでできたロボットの制御の紹介。
関西人はなんでも短かくしますが、エスアイシーピーは関西弁でシクピー(シックピー?)と呼びます。自分も関西人なのでシクピーと呼びますとのことでお話はシクピーで展開。
まず、「なぜLispなの?」と聞かれることが多いそうですが、その答としては「Why not?」。
情報処理のぺた語録により詳しく書いてありますが、講義や演習は、プログラミングを通して、プログラミングを学習するためのもの。
さらにここでいうプログラミングとは与えられた問題を単にコーディングする技術を訓練することではなくて、計算機科学の成果である色々な概念や機能を駆使できる能力であり、講義はそれを育成するためのもの。
この点で現在教材として採用しているSICPは、具体的なプログラミング言語(Scheme)の学習には時間をかけずに、抽象化、並列実行、遅延評価、制約プログラミング、メタ・サーキュラーという概念を学習できる。
これだけの概念を上手くまとめ、効率良く学習できる本はなかなかないので採用している、とのことでした。
また、何年か講義を行なっていて浮上してきた問題としては、処理系の準備の問題があり、当初は大学の計算機センター等に処理系を用意していたものの利用時間が確保できなかったり、処理系は自由に選らんでも良かったにせよ、インストールにつまづく学生がいたりで、本来の学習に専念できないケースがいくつか見られたそうです。
これらの解決策として、SICPの演習をカバーできるようなJAKLDというJavaで記述した処理系を用意。JAKLDは、末尾再帰の最適化や、一級の継続がなくSchemeとは呼びがたい(Schemeの仕様で要求されているため)とのことですが、幸いなことに、SCIPには、call/ccは必要ないそうで演習には問題ないとのことでした。
Legoのロボットに関しては、安価で実際に手元で動かせる実世界と継がったプログラミングを体験できる環境として良いものであるというのが採用理由。
Lego Mindstormsには、C言語風のNQC言語もあるそうですが、別途XS Lispという処理系を用意。NQCはコンパイルして実機に転送して稼動という手順になるそうですが、XS Lispは、REPLから対話的に実行もできるようです。このように静的な言語と動的な言語の開発環境を含めた違いを体験するのもねらいの一つだそうで、両方の言語に取り組むそうです。

Lispが生んだ魔術:メタプログラミングと自己反映計算 / 渡部卓雄

Lispといえば、割とリフレクションが身近ですが、より深いところのお話。
元祖、Brian Smith氏の2-Lisp、3-Lispの解説から、ABCL/R2のような自己反映並列/分散オブジェクト指向言語までと、リフレクションの成り立ち、定義から現在までの流れを解説。
なかなか紹介記事として短かくブログにまとめるのも難しいところですが、発表資料が公開されたら紹介したいと思います。

A Lisp Based Framework for Rapid Development / Glenn D. House Sr.

1日目とは少し変って、具体的な仕組みではなく、サービスを中心とした解説。
ブラウザ上のUIで利用するJavaScript以外の部分は全部Allegro CLで実現したSaaSだそうですが、House Sr.氏曰く、我々技術者は、技術が好きで技術的なものに取り組むのが大好き、自分も大変良く理解できるが、顧客が欲しいものは、技術的にどうこうというものではない。顧客にとって低コストで有用なもの、顧客の望むものを届けなくてはいけないとのことでした。
その辺りを十分に踏まえて、メリットがあるからAllegro CLを採用しているとのことで、各々のコンポーネントにおけるメリットを解説。ビジネスとして至極当然の主張ではありますが、説得力のあるお話でした。

以上、今年も、興味深いLisp関係の発表の数々でした。
Lispはメジャーではないので、なにかをすれば「なぜLispなのか?」と聞かれることは多いと思いますし、他のマイナー言語でも、そういうことは多いと思いますが、なんの言語でも当然ながら「なぜ〜なのか?」はクリアした上での話なんだなとしみじみ思いました。 ■

comments powered by Disqus