コンパイラ(コンパイラ)
作りながら学ぶ
コンピュータサイエンス・アルゴリズム- 著者:
- 中田 育男(ナカタ イクオ)
- 出版社:
- 株式会社オーム社
- 出版日:
- 2017年10月25日頃
- ISBN:
- 9784274221163
- 在庫:
- メーカー取り寄せ
なぜ注目されているか
書籍紹介
コンパイラの名著、待望の改訂!
1995 年に発行し、以来コンピュータサイエンスにかかわる方々に長く活用されてきた『新コンピュータサイエンス講座 コンパイラ』の改訂版です。
コンパイラを通してソフトウェアのしくみとアルゴリズムを考えるのに役立つよう、例を用いて具体的に記述しています。図表やプログラムを多用し、わかりやすくまとめました。
<おもな改訂内容>
・ LL 構文解析の動作例、 LR 構文解析の動作例を加えた
・独習者の利便を考え、演習問題の増強、解答の充実をはかった
・ 9 章「さらに学ぶために」として、より最近の技術について学ぶための指針を示した
・古くなった文献を見直し、追加した
1 章 コンパイラの概要
2 章 コンパイラの簡単な例
3 章 文法と言語
4 章 字句解析
5 章 下向き構文解析
6 章 意味解析
7 章 誤りの処理
8 章 仮想マシンと通訳系
9 章 さらに学ぶために
付録 PL/0 ′コンパイラのリスト
参考文献
演習問題解答
技書の森解説
小さな言語のコンパイラを実際に作りながら、コンパイラの基本理論を一巡する教科書です。著者の中田育男氏は日立製作所の研究所と筑波大学などでコンパイラ研究に携わった第一人者で、 1995 年刊の『新コンピュータサイエンス講座 コンパイラ』を底本に、この改訂版が 2017 年 10 月にオーム社から刊行されました。 A5 判 216 ページと薄く、改訂では LL/LR 構文解析の動作例や演習問題と解答、文献案内の章が加わっています。
題材は教育用の小言語 PL/0 ′ です。コンパイラの概要と簡単な例から入り、文法と言語、字句解析、下向き構文解析、意味解析、誤りの処理、仮想マシンと通訳系へと進み、巻末付録に PL/0 ′ コンパイラの全ソースリストを収めます。版元サイトでは yacc 版・ Java 版・ JavaCC 版・ Ruby 版のソースコードも配布されており、写経しながら動かせる環境が整っています。網羅型の大著と違って最適化の独立した章は持たず、動くものを最短距離で理解させる設計です。
前提はいずれかの言語でのプログラミング経験で、形式言語の知識は本文中の文法の章で補えます。理論書に挫折した人が「まず 1 つ動かす」ために選ぶ一冊として、また大著へ進む前の土台として使いやすい構成です。
言及 Qiita 記事 (45 件)
.NET 11 Runtime Async はなぜ速いのか
♡ 58C#, .NET, 非同期処理, パフォーマンス, コルーチンスクリプト言語「Sheep」を作ってみた
♡ 25Java, 言語処理系コンパイラ講義資料リンク集
♡ 24コンパイラ, 講義資料書籍「コンパイラ 作りながら学ぶ」を読みながら JavaScript でコンパイラを実装してみた
♡ 21JavaScript, コンパイラ, 言語処理系Fermiで時が止まっていた人のためのNVIDIA GPUアーキテクチャ進化史(2010→2026)
♡ 17NVIDIA, GPU, CUDA, コンピュータアーキテクチャ, 半導体UE6 で Verse は「何として」パッケージに乗るのか:ue6-main のコンパイル・クック・実行パイプラインを調べてみた
♡ 5UnrealEngine, UnrealC++, Verse, UE6, Blueprint「Reactは仮想DOMだから速い」は、半分正解で半分ウソだった話
♡ 4React, JavaScript, フロントエンド, 初心者向け, プログラミング技術書「TypeScriptでつくるコンパイラ入門」を出版したので紹介
♡ 4TypeScript, コンパイラ, 技術書, コンパイラ実装【C#】switch 式の when は何ができて、いつ使うのか
♡ 3C#, .NET, switch, パターンマッチングAIとともにつくる新しい日本語プログラミング言語 Aoi (あおい)(ステップ2計画細分化)
♡ 2aoi, 生成AI, 日本語プログラミング言語, トランスコンパイラ, GitHubCopilot
言及 Zenn 記事 (13 件)
アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)
♡ 150go, assembler文系卒エンジニアがどうやって独学でコンパイラを作ったか
♡ 135コンパイラPythonのコンパイラを作りたい #1 - 開発の背景と概要
♡ 90python, c, llvm, compilerMatz の Ruby AOT コンパイラ Spinel を試してみました
♡ 59ruby, compiler, rubykaigi, aot, spinelゲーム専用プログラミング言語『Enaga』をコンパイラから自作した話
♡ 47rust, ゲーム開発, コンパイラ, ecs, 自作言語【Vue.js】コンパイラってよく聞くけど一体全体なんなんだ!?!?!?
♡ 25javascript, typescript, vue, frontend, compilerApple Siliconで進めるCコンパイラ作成入門
♡ 21arm64, c, compilerコンパイラを書くにはコンパイラが必要なのか?
♡ 20コンパイラ, バイナリ, fortran, アセンブリ, 機械語sedをターゲットアーキテクチャとしてコンパイラを自作する (自作言語 Soil)
♡ 18rust, compiler, sed型の表現力はタダ: Rustのニッチ最適化を追う【第3部: コンパイラ内部を読む】
♡ 16rust, tech, layout, compiler, memory
この本に興味がある方におすすめ
この本に関連
関連記事
ChatGPT に聞けば済む時代に、あえて本を開く理由
生成 AI で何でも聞ける時代に、技術書を読む意味はあるのか。AI の回答と書籍の知識の決定的な違いを掘り下げ、両者の使い分けを提案します。
LLM / 生成 AI 本ガイド - 仕組み / 実装 / エージェント開発の 3 層で選ぶ (2026 年 8 月時点)
LLM (大規模言語モデル) / 生成 AI を学ぶ技術書の選び方を 3 層 (読み物で仕組みを掴む → 中身を実装で理解する → RAG / AI エージェント開発) で整理。2026 年 8 月時点の定番書と、変化の速い分野で本を選ぶときの注意点を解説します。
OS / 低レイヤー本ガイド - コンピュータの仕組みを学ぶ技術書の選び方
OS、コンパイラ、ネットワークなど低レイヤーを学べる技術書の 4 ジャンルと、どこから始めるべきかの指針、賞味期限の見極め方を紹介します。