インタプリタの作り方 -言語設計/開発の基本と2つの方式による実装-

インタプリタの作り方 -言語設計/開発の基本と2つの方式による実装-

5,940円(本体 5,400円+税10%)

品種名
書籍
発売日
2023/9/26
ページ数
776
サイズ
B5変形判
著者
Robert Nystrom 著/吉川邦夫 訳
ISBN
9784295017875

実践!モダン言語実装の基礎を知る

本書は、言語の開発に興味がある方、プログラミングの知識や技術をさらに磨きたい方、コンピュータの処理系を詳しく知りたい方に最適な書籍です。筆者の豊富なプログラミング経験による解説は、ときに言語の歴史に触れ、ときにコンピュータサイエンスのエッセンスにも言い及ぶもので、たいへん読み応えがあります。言語開発は難易度の高さから敬遠されがちな技術分野ですが、本書ではそれらが、じつはさまざまな要素の集合体であることを紹介し、シンプルな技術の積み重ねとして、楽しんで学べるものとなっています。

「読者アンケートに答える」「読者プレゼントに応募」の場合もこちらをご利用ください。

アンケートに答える

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

学校・法人一括購入に関するお問い合わせはこちらへ。

一括購入窓口

詳細

1122101087_Aplus1.png

1122101087_Aplus2.png

1122101087_Aplus3.png

1122101087_Aplus4.png

著者紹介

●著者プロフィール
Robert Nystrom (ロバート・ナイストロム)
プロフェッショナルプログラマーとして20年の経歴を持つ。そのうち10年はゲームプログラミングに従事。米国大手ゲーム会社のエレクトロニック・アーツに8年間在籍。大規模ゲームから小型のアドベンチャー&パズルゲームまで幅広く開発に携わり、それらのゲームはPC、GameCube、Playstation 2、Xbox、Xbox 360、Nintendo DS向けに出荷された。しかし著者は、そうした製品のリリースよりも、開発者向けのツールや共有ライブラリの製作に、プライドを持って取り組んできた。美しく有用なコードを眺めることや、開発者の創造力の拡大に寄与することに、なによりも喜びを感じている。著書に『Game Programming Patterns ソフトウェア開発の問題解決』(インプレス刊 2015年)。

●翻訳者プロフィール
吉川 邦夫(よしかわ・くにお)
1957 年生まれ。ICU(国際基督教大学)卒。おもに制御系のプログラマとして、ソフトウェア開発に従事した後、翻訳家として独立。英文雑誌記事の和訳なども手掛ける。訳書は、Scott Meyersらによる「Effective」ソフトウェア開発シリーズ(アスキー、翔泳社)、『C#で始めるプログラミング オブジェクト指向編』(アスキー)、『ゲームプログラミングC++』(翔泳社)、『JavaScriptモダンプログラミング完全ガイド 堅牢なコードを効率的に開発できる! 』(インプレス)など多数。

ページイメージ

クリックすると大きい画像でご覧いただけます

目次

第1章 はじめに
第2章 領域の地図
第3章 Lox言語
第4章 字句解析(スキャニング)
第5章 コードを表現する
第6章 式の構文を解析する
第7章 式を評価する
第8章 文と状態
第9章 制御フロー
第10章 関数
第11章 解決と束縛
第12章 クラス
第13章 継承
第14章 バイトコード
第15章 仮想マシン
第16章 オンデマンドの字句解析
第17章 式をコンパイルする
第18章 値の型
第19章 文字列
第20章 ハッシュ表
第21章 グローバル変数
第22章 ローカル変数
第23章 前後にジャンプする
第24章 コールと関数
第25章 クロージャ
第26章 ごみ集め
第27章 クラスとインスタンス
第28章 メソッドと初期化子
第29章 スーパークラス
第30章 最適化

ダウンロード

本製品の読者さまを対象としたダウンロード情報はありません。

お詫びと訂正

誤記のためにご迷惑をおかけし、誠に申し訳ございません。

  • 88ページ コード例(2番目)のキャプション
    • [誤]
      defineAst()に挿入
    • [正]
      defineType()に追加
  • 89ページ コード例(1番目)
    • [誤]
      (- 123) (group 45.67))
    • [正]
      (* (- 123) (group 45.67))
  • 91ページ コード例(2番目)
    • [誤]
      {* (- 123) (group 45.67))
    • [正]
      (* (- 123) (group 45.67))
  • 101ページ コード例「lox/Parser.java 【expression() の後に追加】」6行目
    • [誤]
      = new Expr.Binary(expr, operator, right);
    • [正]
      expr = new Expr.Binary(expr, operator, right);
  • 174ページ コード例「lox/Interpreter.java 【visitLiteralExpr() の後に追加】」8行目
    • [誤]
      if (isTruthy(left)) return left;
    • [正]
      if (!isTruthy(left)) return left;

お問い合わせ

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

お問い合わせフォーム