トップ «前の日記(2008-12-12) 最新 次の日記(2008-12-18)» 編集

Route 477



2008-12-15

[event][esobook] 今週末、梅田でトークイベントします

(12/18追記: 会場がそれほど広くないようで、定員は40名と決まっているそうです。 予約の申し込みは「ジュンク堂書店 大阪本店 3階東カウンター」か、TEL. 06-4799-1090で行えるそうです。)

関西Ruby会議の出張Ruby本販売が好評だったようで、 「またRuby本イベントなどしたいですね」「そういえば昨年度まで関西にいたyharaさんが本を出すようですよ」 「じゃあトークセッションですね」「そうですね」→「というわけでジュンク堂梅田本店(←「大阪本店」が正式名称でした。すみません)で何かしゃべりませんか」「ええっ!?ちょwww」

…というやりとりがあったとかなかったとか。

まだ何を話すか決めてないのですが、本の紹介と、「Matz江から見たRuby」というネタでなんか喋る予定です。

本の紹介とか

そういえば、本書の想定読者を書いてなかったと思うのでここで。以下に当てはまる数が多いほど楽しめるかと思います。

  • Rubyの初中級者だ。
  • Brainf*ckWhitespaceなどのEsoteric Languageに興味がある。
  • そうでなくても、プログラミング言語全般に興味がある。
  • プログラミング言語を作ってみたい。
  • え、プログラミング言語って作れるものなの?意味分かんないんだけど。

本書は2.5部構成になっていて、第一部ではHQ9+、Brainf*ck、Whitespaceという3つのEsoteric Languageの処理系をいろいろな方法で作ります。 実装言語はRubyですが、Rubyの文法そのものの説明はしてないので、必要な方は別途リファレンスやRuby入門書籍を併用してください (Rubyの高度な機能は特に使っていません)。 第二部ではStarry, Bolicという本書オリジナルのEsoteric Languageを実装しつつ、新しい言語の作り方を考えます。 特にBolicはなかなかひどい感じに仕上がっていると思います(笑)。 付録では、「Esoteric Language傑作選」と題して本編で取り上げられなかったいろいろなEsoteric Languageを紹介しています。 選定基準は筆者の独断ですが、なるべく個性的で、他と被らないものを選んだつもりです。

基本的にプログラミング言語と言語処理系を作る本ですけど、チューリング・マシンとかの「計算を行うには何が必要か」という話にも少しだけ触れています。 個人的には、学校のクラブ活動でプログラミングやってる中高生とかに読んでみて欲しいです。

4839927847

プログラミングを覚えたての頃はアプリケーションを書くのに必死だけど、慣れてくるとライブラリも書いたりできるようになる。 ライブラリをデザインするっていうのは、部屋や建物をデザインするのに似ている。他人に満足してもらうものを作るのは難しいけど、 良いライブラリを使ってプログラミングするのは、良い感じの部屋でくつろぐように心地いいものだ。 この例えでいくと、プログラミング言語をデザインするっていうのは惑星を丸ごとひとつデザインするようなものだろう。 すべてのアプリケーション、すべてのライブラリがその中で記述されるからだ。 幾多のプログラミング言語のうち、広く使われているものはほんの僅かしかないことを考えれば、良い言語を作ることがどれだけ難しいかがわかる。

大変そうだって?

「星の王子様」という有名な童話に、小さな惑星がいくつも出てくる。数十歩もあるけば一周できてしまうような、 頑張っても数人しか入れないような、そんな小さな星だ。

それくらいのサイズで良いのなら、プログラミング言語をつくることは難しくない。決して。

この本を通じて、そのことを体験してもらえれば幸いだ。

本日のツッコミ(全2件) [ツッコミを入れる]
デフォルトの名無しさん (2008-12-24 17:37)

本のサポートページ作りませんか?<br><br>:誤植情報<br>BrainFuck Part.2 <[+-.,]><br>http://pc11.2ch.net/test/read.cgi/tech/1177988460/945<br><br>945 名前:デフォルトの名無しさん[sage] 投稿日:2008/12/23(火) 13:08:54<br>48ページの<br>「+」と「-」<br>ってのはタブン<br>「<」と「>」

yhara (2008-12-25 19:36)

報告ありがとうございます。まさか、BFスレで取り上げられるとはw<br><br>サポートサイトはこちらになります。<br>http://esolang-book.route477.net/