Rustで作るプログラミング言語 --コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで
著者 著者:佐久田 昌博
小さなプログラミング言語から本格的なプログラミング言語へ……ステップバイステップでの開発を通して,プログラミングそのものへの理解を深めよう!
■こんな方におすすめ
・コンピュータサイエンス,とくにプログラミング言語そのものやコンパイラについての素養を得たいと考えている人
・他言語でのプログラミング経験があり,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!
ネイティブコードによるパフォーマンスの向上
Rustで作るプログラミング言語 --コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで


この著者・アーティストの他の商品
前へ戻る
- 対象はありません
次に進む
評価内訳
- 星 5 (0件)
- 星 4 (0件)
- 星 3 (0件)
- 星 2 (0件)
- 星 1 (0件)

実施中のおすすめキャンペーン

