プログラミング言語D(長尾 高弘 長尾 高弘 Andrei Alexandrescu 中川 真宏 原 健治)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. プログラミング言語D

プログラミング言語D

翻訳
原著

監修
監修

形式:
書籍
発売日:
ISBN:
9784798131108
定価:
4,180(本体3,800円+税10%)
仕様:
B5変・456ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発

D言語入門書の唯一絶対の1冊

プログラミング言語の定番といえばC言語ですが、昨今の現場で必要とされる機能を実装するには低レベルに過ぎ、かといってC++は言語自体が複雑、JavaやC#は動作させるための機構が大きすぎ、といずれも“帯に短し襷に長し”。本書で解説するD言語は、それら各開発言語の難点を克服すべく開発された、マルチパラダイムプログラミング言語であり、OOP言語です。1999年にコンパイラ開発者として著名なウォルター・ブライトによって開発され、着実に“使える言語”に育っているD言語を、初歩から応用までスッキリと解説します。

WalterBrightによる序文
ScottMeyersによる序文
イントロダクション
監修者からひとこと

第1章 Dにダイビング

数値と式

関数の基礎
配列と連想配列
基本データ構造
インターフェイスとクラス
値か参照か
まとめ

第2章 基本データ型と式

シンボル
リテラル
演算子
まとめとクイックリファレンス

第3章 文

式文
複合文
if文
staticif文
switch文
finalswitch文
ループ構文
goto文
with文
return文
throw、try文
mixin文
scope文
synchronized文
asm文
まとめとクイックリファレンス

第4章 配列、連想配列、文字列

動的配列
固定サイズの配列
多次元配列
連想配列
文字列
配列の一匹狼的な従兄弟:ポインタ
まとめとクイックリファレンス

第5章 データと関数、関数型のスタイル

単純な関数を書き、単体テストする
引数渡しの方法とストレージクラスの指定
型引数
シグネチャの制約
オーバーロード
高階関数と関数リテラル
ネスト関数
クロージャ
配列を越えて─レンジ、擬似メンバ
可変個引数関数
関数の属性
コンパイル時評価

第6章 クラス、オブジェクト指向型のスタイル

クラス
オブジェクト名はリファレンスである
オブジェクトのライフサイクル
メソッドと継承
staticメンバによるクラスレベルのカプセル化
finalメソッドによる拡張性の抑制
カプセル化
1つのルートがすべてを支配する
インターフェイス
抽象クラス
ネストクラス
多重継承
多重サブタイプ化
パラメータ化されたクラスとインターフェイス
まとめ

第7章 その他のユーザー定義型

構造体(struct)
共用体(union)
列挙された値(enum)
エイリアス、別名(alias)
templateによるパラメータ化スコープ
mixintemplateでコードを注入する
まとめ

第8章 型修飾子

immutable修飾子
immutableを含む構成
immutable引数とメソッド
immutableコンストラクタ
immutableが関わる変換
const修飾子
constとimmutableのやり取り
引数から戻り値への修飾子の伝播
まとめ

第9章 エラー処理

throwとcatch

finally節
nothrow関数とThrowableの特別な性質
2次例外
スタックの巻き戻しと例外の影響を受けないコード
未処理例外

第10章 契約プログラミング

契約
アサーション
事前条件
事後条件
不変式
契約チェックの省略─リリースビルド
契約は入力の修正のためのものではない
契約と継承
インターフェイスでの契約

第11章 スケールアップ

パッケージとモジュール
安全性
モジュールのコンストラクタとデストラクタ
ドキュメンテーションコメント
C、C++とのやり取り
deprecated
version宣言
debug宣言
Dの標準ライブラリ

第12章 演算子オーバーロード

演算子のオーバーロード
単項演算子のオーバーロード
2項演算子のオーバーロード
比較演算子のオーバーロード
代入演算子のオーバーロード
添字演算子のオーバーロード
スライス演算子のオーバーロード
$演算子
foreachのオーバーロード
クラス内での演算子オーバーロードの定義
opDispatch:まったく異なるもの
まとめとクイックリファレンス

第13章 並行処理

並行処理をめぐる状況
データ共有の簡単な歴史
共有はもうデフォルトではない
スレッドの起動
スレッド間でのメッセージ交換
receiveによるパターンマッチ
ひねりの入ったファイルコピー
スレッドの終了
アウトオブバンド通信
満杯のメールボックス
shared型修飾子
sharedデータに対する操作とその効果
synchronizedclassを使ったロックベースの同期
synchronizedclassのフィールドの型
デッドロックとsynchronized文
sharedclassを使ったロックフリーコーディング
まとめ

付録A参考資料

本書は付属データの提供はございません。

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2016年01月25日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 002
下から11行目
Python の import: に似ている
Python の import に似ている
2013.07.17
1刷 013
上から11行目
(ファイルには、必要なだけいくつでもunittest を含むことができる。
(ファイルには、必要なだけいくつでもunittest を含むことができる)。
2013.07.17
1刷 026
下から7行目
コーデング
コーディング
2013.07.17
1刷 030
「2.2.2 整数リテラル」2行目
オープション
オプション
2013.07.17
1刷 032
脚注3
C99s
C99
2013.07.17
1刷 037
「2.2.6 配列、連想配列リテラル」1つ目のコードの下の文章 1行目
カンマ区切りリスト長さから
カンマ区切りリストの長さから

「の」が抜けていました。
2016.01.25
1刷 039
コラム内リスト
auto f1 = function(int x) return x / 10.; ;
auto f1 = function(int x) { return x / 10.; };
2013.07.17
1刷 045
本文上から2行目
そのなかにはshort → intという直接変換
そのなかにはushort → intという直接変換
2013.07.17
1刷 061
表2-5の式「a += b」の説明
(3)al = al ω b
(3)a = a ω b ※「l」は「a」の下付き添字
2013.07.17
1刷 091
本文最下行
array[n]:
array[n]
2013.07.17
1刷 096
図4-2
2013.05.08
1刷 130
本文上から4行目
(--main を忘れても心配する必要はない。リンカがそのことを流暢で奇妙な暗号化クリンゴン(彼らの母国語)でそのことを教えてくれる。
(--main を忘れても心配する必要はない。リンカがそのことを流暢で奇妙な暗号化クリンゴン(彼らの母国語)でそのことを教えてくれる)。
2013.07.17
1刷 140
5.5.1 関数の半順序関係、4行目
(「foo1 の方がfoo2 よりも適しているということはないことをfoo1≦foo2と書くことにする)
(「foo1 の方がfoo2 よりも適しているということはない」ことをfoo1≦foo2と書くことにする)
2013.07.17
1刷 140
5.5.1 関数の半順序関係、上から8行目
対称律が成り立たず
反対称律が成り立ち
2013.07.17
1刷 143
下から4行目
オーバーロードを一方に導くモジュールの間で曖昧さが生じたときに、オーバーロードを一方に~~
■オーバーロードを一方に導く
モジュールの間で曖昧さが生じたときに、オーバーロードを一方に~~
2013.07.17
1刷 155
本文下から5行目
stdl.algorithm
std.algorithm
2013.07.17
1刷 183
本文上から10行目(1つ目のリストの直前)
0.0, 0.1,0.2, ..., 1.27:
0.0, 0.1,0.2, ..., 1.27
2013.07.17
1刷 186
1つ目のリストの下の本文6行目
効果なリソース
高価なリソース
2013.07.17
1刷 192
本文下から3行目
Base.number と書くのとsupere.number と書くのは
Base.number と書くのとsuper.number と書くのは
2013.07.17
1刷 195
2つ目のリストのコメント
それを投げる
それを捨てる
2013.07.17
1刷 197
「6.7 カプセル化」7行目
アプリケーションのさまざままモジュール化された要素は、
アプリケーションのさまざままなモジュール化された要素は、
2015.10.27
1刷 217
1つめのリスト 13行目
// Rectangle は以前として抽象クラスである
// Rectangle は依然として抽象クラスである
2015.11.09
1刷 227
最終行
(ISA)
(IS-A)
2015.11.09
1刷 228
1つ目のリストの次の行
(ISA)
(IS-A)
2015.11.09
1刷 229
15行目
alis thisによる
alias thisによる

「alias」の2つ目の「a」が抜けていました。
2016.01.25
1刷 233
6行目
StackImpl!int StackImpl!double
StackImpl!int と StackImpl!double
2015.11.09
1刷 236
7.1 「構造体(struct)」3~4行目
異なる値を参照する
異なるアドレスにある値を参照する
2015.11.09
1刷 268
2つ目のリストの下、本文2行目
すべてにプリミティブ型と
すべてのプリミティブ型と
2013.07.17
1刷 317
箇条書き内真ん中
デストラクタの冒頭
デストラクタの冒頭
2013.07.17
1刷 345
本文最下行
モジュール名のプレフィックスとしてacme impl ではなくacme を
モジュール名のプレフィックスとしてacmeではなく acme impl を
2013.07.17
1刷 351
本文上から5行目
Windows 7
Windows Vista
2013.07.17
1刷 354
本文上から5行目
dmd の場合は-w
dmd の場合は-de
2013.07.17
1刷 361
本文最終行
後置インクリメントの部分の
前置デクリメントの部分の
2014.08.27
1刷 369
箇条書きの下、本文1行目
<、<=、>、and>=の4 種類の順序比較演算子
<、<=、>、そして>=の4 種類の順序比較演算子
2013.07.17
1刷 388
最終行
自分プログラミングスタイルや
自分のプログラミングスタイルや
2015.10.22
1刷 410
2行目
遭う(だから、D が設計上そのようなスの読み出しを
遭う(だから、D が設計上そのような素の読み出しを
2015.10.22
1刷 415
2行目
自体は手に負えなくなっている。
事態は手に負えなくなっている。
2015.10.22

感想・レビュー

peng225 さん

2014-06-04

単にD言語の書き方が載っているだけでなく、D言語がどのような思想に基づいて設計されているかがよく分かる一冊。これを読んで本当にD言語の素晴らしさに感動した。少々誤字が目立つのはご愛嬌。

ottu さん

D言語を解説した和書はこれしかない。パーフェクトガイドなんて存在しない。