コンパイラ

コンパイラ

作りながら学ぶ

コンパイラの表紙
コンピュータサイエンス / アルゴリズム
著者:
中田 育男(ナカタ イクオ)
出版社:
株式会社オーム社
出版日:
2017年10月25日頃
ISBN:
9784274221163
在庫:
メーカー取り寄せ
0
中級者向け
コンパイラーアルゴリズム構文解析意味解析字句解析仮想マシンプログラミング言語コンピュータサイエンスソフトウェア設計コンパイラー設計

なぜ注目されているか

言及数
55位
総合113位 ↑ 3 ランクアップ 言及 63 件・うち記事 36 件を掲載
081520222023202420252026

書籍紹介

コンパイラの名著、待望の改訂!
1995 年に発行し、以来コンピュータサイエンスにかかわる方々に長く活用されてきた『新コンピュータサイエンス講座 コンパイラ』の改訂版です。

コンパイラを通してソフトウェアのしくみとアルゴリズムを考えるのに役立つよう、例を用いて具体的に記述しています。図表やプログラムを多用し、わかりやすくまとめました。

<おもな改訂内容>

・LL 構文解析の動作例、LR 構文解析の動作例を加えた

・独習者の利便を考え、演習問題の増強、解答の充実をはかった

・9 章「さらに学ぶために」として、より最近の技術について学ぶための指針を示した

・古くなった文献を見直し、追加した

1 章 コンパイラの概要

2 章 コンパイラの簡単な例

3 章 文法と言語

4 章 字句解析

5 章 下向き構文解析

6 章 意味解析

7 章 誤りの処理

8 章 仮想マシンと通訳系

9 章 さらに学ぶために

付録 PL/0′コンパイラのリスト

参考文献

演習問題解答

技書の森解説

コンパイラーの仕組みを、小さな言語の処理系を実際に組み立てる流れに沿って学ぶ教科書です。著者は中田 育男、版元はオーム社で、2017 年 10 月に刊行されました。版元の紹介文によれば、1995 年に発行された『新コンピュータサイエンス講座 コンパイラ』の改訂版で、図表やプログラムを多用し、例を用いて具体的に記述した構成になっています。題材となる言語は PL/0′ で、巻末の付録にはそのコンパイラーのリストが収録されています。

PL/0′ を題材にした全 9 章の構成と改訂の要点

目次は 1 章のコンパイラーの概要と 2 章のコンパイラーの簡単な例から入り、3 章の文法と言語、4 章の字句解析、5 章の下向き構文解析、6 章の意味解析、7 章の誤りの処理、8 章の仮想マシンと通訳系へと進みます。改訂で新たに置かれた 9 章「さらに学ぶために」は、初版以降の新しい技術について学ぶための指針を示す章です。巻末には付録の PL/0′ コンパイラーのリスト、参考文献、演習問題解答が並びます。版元の挙げるおもな改訂内容は、LL 構文解析と LR 構文解析の動作例の追加、独習者向けの演習問題の増強と解答の充実、9 章の新設、古くなった文献の見直しと追加の 4 点です。版元のサイトでは、本書の最後に掲載したソースに加えて yacc 版、Java 版、JavaCC 版、Ruby 版のソースが購入者向けに配布されています。

字句解析から仮想マシンまでを一本の流れで作る意味

コンパイラー の学習が難しいのは、個々の理論が単独では役割を実感しにくいからです。正規表現と有限オートマトンの関係、文法の左再帰を取り除く理由、先読み記号の集合を計算する意味は、それぞれ教科書の一節として読むと抽象的に見えます。ところが、文字の並びを字句に切り出し、字句の並びを文法に照らして解析し、名前の宣言と使用を対応づけ、最後に命令列を生成するという一本の流れの中に置くと、各段階が次の段階に何を渡しているのかがはっきりします。下向き構文解析の代表的な手法である再帰下降は、文法規則を手続きに素直に対応させて書けるため、手で書く解析器として扱いやすく、実用の言語処理系でも採用例の多い方式です。実用のコンパイラーでは解析結果を AST として保持して複数の工程に渡すのが一般的なので、小さな処理系で全体像をつかんでおくと、より大きな処理系の構造を読むときの足場になります。生成した命令を仮想マシンの上で動かす構成は、ネイティブコードの生成や JIT コンパイル といった方式の違いを考える際の基準点にもなります。

前提知識と、網羅型の大著との使い分け

付録のソースを読み、配布されたソースを動かしながら進めるには、何らかのプログラミング言語で一定の長さのプログラムを書いた経験があると安心です。形式言語の知識は 3 章の文法と言語で扱われますが、集合や再帰の考え方に慣れていると理解が早まります。一方で、目次には最適化やレジスター割り付け、ネイティブコード生成を独立して扱う章はなく、これらを体系的に学びたい人には網羅型の大著のほうが目的に合います。低レイヤーの技術書の中で、どの分野から手を付けるかを決めかねている場合は、OS / 低レイヤー本ガイド で全体の地図を確かめておくとよいでしょう。

理論書を開いたものの途中で止まってしまった人、言語処理系の仕組みを自分の手で一度通しておきたい人、構文解析器やドメイン固有言語を実務で書く必要が出てきた人にとって、動く処理系を手元に置きながら理論を確認できる本書は、大著へ進む前の確かな土台になります。

言及した記事 (36 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: