※本書はCC BYにより配布されています。上記の「買い物かごへ」ボタンからは有償で購入できます。無料で入手したい場合は、下記リンクよりダウンロードしてください。なお、有償版も無償版も内容は同一です。
内容紹介
プログラムは書けても、その基礎となっている計算機科学(コンピュータサイエンス) の理解があやふやな人を、著者は多く見てきました。プログラミングに自信があるという人が、もう一歩先に進める道を示したいというのが、この文書を書き始めた動機です。
この文書を読むことで次の効果が得られることを期待しています。
- プログラミング言語とは何かを深く理解することで、プログラミングのレベルが上がる。
- 「この言語が良い!」と言う時に、シンタックス、ライブラリ、プログラミング言語固有の機能などのレベルの機能に言及しているのか区別できる。
- プログラムがどのように実行されるか理解できる。
- 関数型言語の中心となる概念を理解できる。
- λ式とクロージャの違いが説明ができる。
- 計算機科学の良書である通称SICP *1という本を読む準備ができる。
- 友達に「関数型言語の処理系を作ったことがある」と言える ;-)
どれか一つにでも魅力を感じれば、この文書の読者の対象と言えるでしょう。
プログラミング言語を理解するために、これからμSchemeRという独自のプログラミング言語を作成していきます。ものごとの本質を理解するには、その内部がどうなっているのかを理解することが最も大切だと信じているからです。理解するためには、実際に作ることが一番です。作成する言語は小さな関数型言語を選びました。作成が簡単にも関わらず強力な機能を持っていること、通常の人にはなじみが少ないパラダイムである関数型のプログラミング言語を理解することにより、プログラミングの知識に幅を持てるようになるという理由からです。
(「はじめに」より抜粋)
書誌情報
- 著者: 渡辺昌寛
- 発行日: 2013-04-15
- 最終更新日: 2013-04-15
- バージョン: 1.0.0
- ページ数: 40ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: 達人出版会
対象読者
プログラミング言語をより深く理解したい方、SICPを読んでみたけれど第4章「超言語的抽象」に辿り着く前に挫折した方
著者について
渡辺昌寛
情報科学研究科情報基礎科学専攻博士課程前期修了。通信系システム開発会社で、プログラマにあこがれながら、P2P, セマンティックWeb, ユーザーインターフェイスと貪欲に興味を持った技術の研究開発に取り組んでいる。
目次
はじめに
第1章 プログラムと評価
- 1.1 プログラミング言語とは
- 1.2 はじめてのプログラムの評価
- 1.3 まとめ
第2章 関数適用の評価
- 2.1 環境
- 2.2 let式
- 2.3 クロージャ
- 2.4 評価(eval)と関数適用(apply)
- 2.5 λ式とクロージャの違い
- 2.6 まとめ
第3章 再帰
- 3.1 条件式
- 3.2 再帰
- 3.3 純粋関数型言語 ― 代入はどこへ?
- 3.4 関数型言語と再帰 ― for文はどこへ?
- 3.5 まとめ
第4章 少し言語を拡張して
- 4.1 リスト
- 4.2 定義
- 4.3 cond式
- 4.4 パーサー
- 4.5 quote
- 4.6 REPL
- 4.7 その他
- 4.8 まとめ
第5章 次のステップ
- 5.1 Scheme in μSchemeRにチャレンジ
- 5.2 SICPにチャレンジ
- 5.3 シンタックスの変更