![(括弧)-より文明的な時代のエレガントな武器](https://habrastorage.org/getpro/habr/post_images/08a/ed1/782/08aed1782711359d746e0c4e1319687c.png)
「Lisp in Small Pieces」が私の手に落ちた後、数十ページ後に、そのようなダイヤモンドは不明瞭に消える価値がないことに気付きました。 そして、外国の本
読者の期待:
- 37,000以上のブラケット!
- Schemeのすべての構成のセマンティクスとその親類を解析します。
- その表示的意味論の分析を含む-ラムダ計算に関する言語の正式な数学的記述。
- 11個のインタープリターと2個のコンパイラー(そこに記載されているVMのマシンコードとCコードへのトランスレーター);
- 再帰の本質、クロージャーと環境、継続と呼び出しのスタック、マクロとメタ言語の実装、および少しの反射と自己修正コードの説明。
- Lispの歴史と言語の設計でなされた決定の理由への多くの遠足;
- 著者自身のCLOSライクなオブジェクトシステム(そしてもちろんその実装)。
- 時々、「はい、これは言語YのXです」という感覚があります。
- 230アイテムのトピックに関するリファレンス。
( tl; dr: PDF 、 EPUB 、 HTML )
何らかの理由で(少なくとも私は感じました)、独自の実装を書くことに関するトピックに関する初心者向けのさまざまな記事で、解析などの「退屈な」ことに注意が払われます。プログラミング言語の開発は楽しく創造的です。」 関心のある人の頭に入れて、彼の希望を確認し、よく知られているチェックリストのようなもので日常を疲れさせたり夢を壊したりしないようにする必要があるのは、この考えです。 結局のところ、プログラミングがおもしろければ、プログラミング言語のプログラミングに興味があります。 ソフトウェア開発者が彼のプログラムの神なら、言語開発者は...すごい! 世俗的な事柄は後の世話をすることができます。
Schemeは実装が簡単なことで知られています。 それ以上に、この言語は最も耐えられないプログラミング言語のタイトルを正しく持っています:12を超える人気の(相互に互換性のない)実装、さらにはさまざまな程度のハッキングされた工芸品、そしておそらく何百もの学生通訳が毎年引き渡されます。 そのため、Scheme自体にSchemeを実装すると、 言語の開発プロセスに完全に集中でき、パーサー、適切な型システム、ガベージコレクターなどについて(時期尚早に)考える必要がなくなります。 これはまさにこのチュートリアルが教えていることであり、興味のある人には低レベルの実装の詳細を残しますが、さらに深くすべきことです。
著者との合意により、本はCC BY-ND 3.0の条件の下で配布されます。 本のソースコード(LaTeXおよび
残念ながら、テストに必要な数のさまざまなデバイスが不足していることと、EPUBのハードウェアサポートの一般的な不備のために、EPUBバージョンの品質を保証できません。 おそらく、完全なブラウザを持たないすべてのものについては、テキストがクロールされ、キットで提案されているフォントがCSSの半分とともに無視され、すべてがひどく見えます。 リクエストに応じて、特定の画面サイズと解像度のPDFにスタンプを付けることができます。 (技術文献用の電子書籍の最も適切な形式についてのコメントを喜んで議論します。)