プログラミング言語論
プログラミング ゲンゴ ロン
- 著者:
- 大山口通夫 / 五味弘(オオヤマグチ, ミチオ / ゴミ, ヒロシ)
- 出版社:
- コロナ社
- 出版日:
- 2008年03月
- ISBN:
- 9784339027044
- シリーズ:
- コンピュータサイエンス教科書シリーズ
- 在庫:
- 在庫あり
なぜ注目されているか
技書の森解説
『プログラミング言語論』は、プログラミングパラダイムと構文、意味論というプログラミング言語の基本的な事項を概説し、C 言語と Java を題材に「プログラムの意味」を掘り下げる大学向けの教科書です。大山口 通夫、五味 弘の両氏による共著で、コロナ社の「コンピュータサイエンス教科書シリーズ」の 4 巻として 2008 年 3 月に刊行されました (版元の発行年月日は 2008 年 3 月 13 日)。版元の紹介文は、本書が C 言語と Java についての意味論に焦点を当て、その有効性に重点をおいて解説していると案内しています。
全 8 章の構成、パラダイムの分類から C と Java の意味まで
本文は全 8 章で、どの章も末尾に演習問題が付きます。1 章の序論に続き、2 章ではプログラミング言語をパラダイムに従って分類し、それぞれに対応する計算モデルを解説します。目次を見ると、命令型言語には理論モデルの RAM、関数型言語には λ 算法と Lisp、論理型言語には一階述語論理と単一化、オブジェクト指向言語には抽象データ型が組み合わされています。そのあと 3 章が構文、6 章が意味論を受け持ち、間の 4 章と 5 章で命令型とオブジェクト指向の言語をさらに詳しく扱います。最後の 7 章と 8 章で C と Java を取り上げる並びです。
パラダイムごとに計算モデルを対応させる構成には理由があります。λ 算法は関数の定義と適用だけで計算を表す体系で、関数型プログラミング の理論的な土台にあたります。論理型言語の単一化やバックトラックも、手続き型の言語に慣れた人には動きの想像がつきにくい仕組みです。言語の見た目の違いを、背後にある計算の模型の違いとして捉え直せることが、2 章を読む実益と読めます。
構文は文脈自由文法で、意味は仮想計算機で説明する
3 章は構文規則を文脈自由文法で記述する方法を扱い、曖昧さのない文法の書き方、式の文法規則、構文図式まで進みます。6 章は形式的な意味の記述法を取り上げ、RAM の機械語命令の意味から簡単なプログラムの意味の記述へ進んだあと、表示的意味論と公理的意味論を紹介します。表示的意味論はプログラムを数学的な対象へ写して意味を定め、公理的意味論は文の実行前と実行後に成り立つ条件で意味を述べる考え方です。どちらも、処理系を動かして確かめるのではなく、定義からプログラムが何をするかを言えるようにするための道具です。
本書の特色は、この議論を実在の言語につなげる 7 章と 8 章にあります。7 章では C 言語のサブセットとして Small C を定義し、仮想計算機の上で関数の定義と呼び出し、配列とポインター、文と式の意味を説明したうえで、型宣言と型検査を扱います。8 章は Java 処理系の構成とメモリ構成、クラスローダー、構文規則から入り、式や制御文、オブジェクト指向の機能がバイトコードへどう変換されるかを追います。ソースコードを中間コードへ落とす過程は コンパイラー が後段で行うコード生成そのものなので、意味論を処理系の実装の側から見る視点が得られます。
命令型とオブジェクト指向の言語機能を詳しく扱う 4 章と 5 章
4 章は構造化プログラミング、データ型 (基本データ型と配列型、レコード型、ポインター型)、手続きを扱い、手続きの節には引数の結合方法、名前の有効範囲と存続範囲、実行時スタックが並びます。値渡しか参照渡しかで同じ呼び出しの結果が変わる、という種類の違いを言語の定義として理解する章です。5 章はオブジェクトの定義から始め、カプセル化と情報隠蔽、継承、ポリモーフィズム、インタフェース、委譲、コンポジションと機能を一つずつ取り上げ、委譲と継承の比較の節も置いています。継承に頼らず部品を組み合わせて機能を作る考え方は、オブジェクト指向 の設計を学ぶうえで避けて通れない論点です。5 章の後半には、出張旅費清算システムとチケット予約システムという事例が置かれています。
版元は本書を教科書として案内しており、特定の言語の書き方を一から教える入門書ではありません。7 章と 8 章は C と Java のプログラムを読めることを前提にした章立てと読めるため、どちらかの言語で簡単なプログラムを書いた経験があると進めやすくなります。2008 年 3 月刊のため、言語の仕様や処理系の話は刊行時点のものとして読むのが安全です。版元ページには、補足資料の置き場所と、まえがきに載せた URL が変更になった旨の案内があります。
講義でプログラミング言語論を履修する学生はもちろん、複数の言語を使い分けるうちに、引数の渡し方や継承の仕組みが言語ごとに違う理由を定義の水準で整理したくなった技術者にとって、パラダイム、構文、意味論、そして C と Java の実装までを 1 冊で通して追える本書は、手元に置く価値のある教科書です。
言及した記事 (2 件)
この本に興味がある方におすすめ
関連する本
関連記事
ChatGPT に聞けば済む時代に、あえて本を開く理由
生成 AI で何でも聞ける時代に、技術書を読む意味はあるのか。AI の回答と書籍の知識の決定的な違いを掘り下げ、両者の使い分けを提案します。
LLM / 生成 AI 本ガイド - 仕組み / 実装 / エージェント開発の 3 層で選ぶ (2026 年 8 月時点)
LLM (大規模言語モデル) / 生成 AI を学ぶ技術書の選び方を 3 層 (読み物で仕組みを掴む → 中身を実装で理解する → RAG / AI エージェント開発) で整理。2026 年 8 月時点の定番書と、変化の速い分野で本を選ぶときの注意点を解説します。
技術書の帯コピーの世界 - 煽り文句に隠されたマーケティング
「10 万部突破」「現場で使える」「これ 1 冊で完璧」。技術書の帯に書かれた煽り文句の法則と、帯が売上に与える影響を解説します。