PR:この記事にはアフィリエイトリンクが含まれます。
Racketの本を探すと、ゲーム作りからコンパイラ実装まで、思った以上に選択肢があります。同じ入門書に見えて、学べることはかなり違うんですよね。
マクロを知りたいのか、小さな言語を動かしたいのか。目的が見えてくると、本も選びやすくなります。ゲーム作りからマクロ、コンパイラまでを扱う5冊を紹介します。
RacketはScheme系の言語で、プログラムを書く道具であると同時に、新しい構文や言語を組み立てる環境としても使われます。基礎から処理系の考え方まで学ぶなら、段階を追える本が頼りになります。
RacketとDSL
DSLとは、特定の仕事を簡潔に表す小さな言語です。設定や数式、ルールをその分野の人にも読みやすく書けるのが利点で、Racketは構文を拡張しやすいため試作にも使えます。
マクロを使うと、プログラムの構文を別の形へ展開できます。関数では表しにくい形式を作れる一方で、構文の意味や評価順まで考える必要があります。小さなプログラムに慣れてから進むと、構文拡張も理解しやすいですよ。
本によって、Racketの基礎を手を動かして学ぶもの、Schemeのマクロを体系的に扱うもの、言語やコンパイラの構造を追うものがあります。基礎と実例をつないで読むと、応用しやすくなります。
5冊の早見表
5冊の得意分野と参考価格を一覧にしました。価格は出版社の希望小売価格が目安です。実売価格は販売店や時期で変わるので、購入時に確認してください。
| 書籍 | 得意分野 | 参考価格 |
|---|---|---|
Realm of Racket | ゲームで学ぶRacket入門とメタプログラミング | $39.95 |
Racket Programming the Fun Way | 幅広い題材で学ぶRacket | $49.95 |
The Scheme Programming Language | Schemeの構文拡張とマクロ | $60.00 |
Structure and Interpretation of Computer Programs | 計算モデルと処理系 | $80.00 |
Essentials of Compilation | Racketで段階的に作るコンパイラ | $50.00 |
Racket入門を優先するなら前半の2冊、構文拡張を学ぶならSchemeの本が候補です。DSLの評価やコンパイラまで作りたい人には、後半の2冊が実装の視野を広げてくれるでしょう。
ゲームから学ぶ
『Realm of Racket: Learn to Program, One Game at a Time!』は、ゲームを作りながらRacketの基礎を学ぶ入門書です。抽象的な構文の説明だけでは手が止まりがちな人も、動くものを作りながらなら取り組みやすいでしょう。
著者はMatthias Felleisen、David Van Horn、Conrad Barskiと、Northeastern Universityの学生8名です。章ごとにチェックポイントとチャレンジがあり、読み進めた内容を自分で確かめられます。
終章にはメタプログラミングと言語作成を扱う節があります。基礎の先にあるRacketの構文拡張へ関心をつなげられる構成ですね。入門から次の話題へ進みやすい一冊です。
2013年6月刊で、312ページです。参考価格は$39.95。実売価格は時期や店によって変わります。ゲーム作りを入口に、Racketのマクロや言語拡張にも触れたい人におすすめです。
多彩な実例
『Racket Programming the Fun Way: From Strings to Turing Machines』は、James W. Stellyによる360ページの本です。基本から幅広い題材へ進む構成で、Racketで何ができるのか実例を通して知りたい人に合います。
基本や関数から始まり、描画やデータ、論理プログラミングへと題材が広がります。DrRacketの利用例もあります。読み進めながら関心の幅を広げられるでしょう。
題材はプッシュダウンオートマトン、チューリングマシン、代数電卓にも広がります。具体的なプログラムを幅広く読み、言語の表現力や計算の考え方をつかめるのが持ち味です。
2021年刊で、書籍のコード例も配布されています。参考価格は$49.95で、実売価格は時期や店によって変わります。Racketの幅広い作例を読みたい人におすすめです。
Schemeのマクロ
『The Scheme Programming Language』第4版は、R. Kent DybvigによるSchemeの解説書です。R6RSに対応し、入門とリファレンスの両方を兼ねています。Scheme系言語の基礎を押さえたい人におすすめです。
第8章では、syntax-rulesとsyntax-caseによる構文拡張を扱います。構文がどう組み上がるかをコードと一緒に追えるのが、うれしいところです。
集合の構築やSchemeインタプリタなどの拡張例と追加演習も収録されています。マクロの仕組みをコードで確かめたい人におすすめです。プログラミング経験のある専門家や学生を主な読者に想定しています。
2009年7月刊で、504ページのペーパーバックです。参考価格は$60.00で、実売価格は販売店や時期によって変わります。Schemeマクロを学ぶなら、今回の5冊で最も直接的な候補です。
計算を組み立てる
『Structure and Interpretation of Computer Programs』は、Harold AbelsonとGerald Jay Sussmanの著作で、Julie Sussmanが協力しています。Schemeで計算のモデルを学び、プログラムの動きを深く考える教科書です。
インタプリタやコンパイラなどのプログラムシステムを作る題材に、多数の演習を添えています。演習を通じて、計算の仕組みを自分で考えられます。
DSLの評価器を作るとき、入力をどんな規則で解釈し計算へ結ぶかを考える参考になります。本書の中心は、言語の実行モデルです。
第2版は1996年7月刊で、688ページです。参考価格は$80.00。実売価格は時期や店舗で変動します。プログラムの実行の仕組みを深く理解したい人には、腰を据えて読む価値があります。
コンパイラ実装
『Essentials of Compilation: An Incremental Approach in Racket』はJeremy G. Siekの著作です。Racketで小さな言語のコンパイラを段階的に組み立てます。
機能を少しずつ加えながら、コンパイラの実装がどう変化するかを追える構成です。完成までの手順をたどり、言語処理を段階的に学べます。
動的型付けと漸進的型付けを扱う章があります。ソースコードや演習解答などの補助資料も案内されています。DSLを定義し、実行や変換の仕組みまで実装したい開発者におすすめです。
2023年2月刊、240ページのハードカバーです。参考価格は$50.00で、実売価格は時期や販売店で変わります。本書はコンパイラ実装を中心に扱い、Racketで言語処理を学びたい人におすすめです。
結論
Racketを初めて学び、いずれマクロにも進みたい人には『Realm of Racket』がおすすめです。ゲーム作りで基本を身に付け、終章ではメタプログラミングに触れます。入口から次の関心へつながる一冊です。
Schemeの構文拡張を詳しく学ぶなら『The Scheme Programming Language』、言語の実行モデルを掘り下げるなら『Structure and Interpretation of Computer Programs』が適しています。Racketでコンパイラを実装したい人には『Essentials of Compilation』をおすすめします。
参考価格は$39.95〜$80.00ですが、実売価格は時期や販売店で変わります。初学者には『Realm of Racket』、Schemeマクロを学びたい人には『The Scheme Programming Language』、処理系の実装へ進む人にはコンパイラ本が合います。目的に近い内容から始めれば、読み終えた直後にコードへ取りかかれます。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。






