Rustで作るプログラミング言語
——コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで

[表紙]Rustで作るプログラミング言語 ——コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで

紙版発売
電子版発売

B5変形判/392ページ

定価3,740円(本体3,400円+税10%)

ISBN 978-4-297-14192-9

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

小さなプログラミング言語から本格的なプログラミング言語へ……ステップバイステップでの開発を通して,プログラミングそのものへの理解を深めよう!

こんな方におすすめ

  • コンピュータサイエンス,とくにプログラミング言語そのものやコンパイラについての素養を得たいと考えている人
  • 他言語でのプログラミング経験があり,Rustの習得に興味のある人。とくに,学習のための題材を探している人

この書籍に関連する記事があります!

はじめに

目次

第1章:プログラミング言語概論

  • プログラミング言語の分類
  • 他の切り口での分類方法
  • コンパイルパイプライン

第2章:スタックベース仮想マシン

  • 仮想マシン概論
  • Rustでの実装
  • 標準入力からの読み込み
  • パースとコマンドの実行
  • ブロックとネスト構造
  • if制御構文
  • 変数の定義
  • 複数行のソースコードへの対応
  • 関数呼び出し
  • 関数の再帰呼び出し
  • WebAssemblyへのコンパイルとブラウザでの実行

第3章:プログラミング言語の構文解析

  • 構文解析が解決する課題
  • 構文へのマッチ
  • トークンの切り出し
  • 括弧によるグループ化
  • 木構造の構築
  • 式の構文木
  • パーサコンビネータnom
  • Parsing Expression Grammarによる構文解析
  • ASTインタプリタ
  • 関数呼び出しの構文と評価
  • 設定ファイルへの応用

第4章:スクリプト言語ランタイム

  • 本章で設計する言語
  • 構文と意味論
  • AST実行モデル
  • 文(Statement)の導入
  • 変数宣言
  • 代入文
  • 条件分岐
  • ループ
  • 関数定義
  • その他の制御構文
  • 動的型の導入

第5章:静的型付けと型チェック

  • 静的型システムの概要
  • 型チェックの基本構成法
  • 型宣言
  • 式と文の型チェック
  • 組み込み関数の型定義
  • エラー位置の報告

第6章:バイトコードへのコンパイル

  • バイトコードとネイティブコード
  • スタックマシンとレジスタマシン
  • 命令セットの特徴と設計
  • バイトコードの構成
  • 最小限のバイトコードの定義と実行
  • バイトコードへのコンパイル
  • リテラルテーブルの実装
  • 任意のソースコードをパースしてバイトコードへ翻訳
  • 完全な式のコンパイルと実行
  • 条件分岐式のコンパイルと実行
  • ループ制御のコンパイルと実行
  • ユーザー定義関数
  • 型チェッカーとの統合
  • 状態マシンとコルーチン
  • コルーチンオブジェクトとジェネレータ
  • 応用例

第7章:LLVMを使ったネイティブコードへのコンパイル

  • llvm-sysとinkwell
  • inkwellでのHello, world!
  • ネイティブコードによるパフォーマンスの向上

著者プロフィール

佐久田昌博(さくたまさひろ)

東京大学工学系研究科 精密工学専攻 修士卒。

C,C++を中心にソフトウェア技術者として15年の経歴がある。マサチューセッツ工科大学に客員研究員(Visiting Scientist)として1年間在籍。Rust開発を7年ほど前から始め,数多くの個人プロジェクトとともに商用製品の一部に使っている。