プログラミング言語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日
ページ数 内容 書籍修正刷 電子書籍訂正 発生刷 登録日
002
下から11行目
誤 Python の import: に似ている
正 Python の import に似ている
未 未 1刷 2013.07.17
013
上から11行目
誤 (ファイルには、必要なだけいくつでもunittest を含むことができる。
正 (ファイルには、必要なだけいくつでもunittest を含むことができる)。
未 未 1刷 2013.07.17
026
下から7行目
誤 コーデング
正 コーディング
未 未 1刷 2013.07.17
030
「2.2.2 整数リテラル」2行目
誤 オープション
正 オプション
未 未 1刷 2013.07.17
032
脚注3
誤 C99s
正 C99
未 未 1刷 2013.07.17
037
「2.2.6 配列、連想配列リテラル」1つ目のコードの下の文章 1行目
誤 カンマ区切りリスト長さから
正 カンマ区切りリストの長さから
備
考
「の」が抜けていました。
未 未 1刷 2016.01.25
039
コラム内リスト
誤
auto f1 = function(int x) return x / 10.; ;
正
auto f1 = function(int x) { return x / 10.; };
未 未 1刷 2013.07.17
045
本文上から2行目
誤 そのなかにはshort → intという直接変換
正 そのなかにはushort → intという直接変換
未 未 1刷 2013.07.17
061
表2-5の式「a += b」の説明
誤 (3)al = al ω b
正 (3)a l= a l ω b ※「l」は「a」の下付き添字
未 未 1刷 2013.07.17
091
本文最下行
誤 array[n]:
正 array[n]
未 未 1刷 2013.07.17
096
図4-2
誤
正
未 未 1刷 2013.05.08
130
本文上から4行目
誤 (--main を忘れても心配する必要はない。リンカがそのことを流暢で奇妙な暗号化クリンゴン(彼らの母国語)でそのことを教えてくれる。
正 (--main を忘れても心配する必要はない。リンカがそのことを流暢で奇妙な暗号化クリンゴン(彼らの母国語)でそのことを教えてくれる)。
未 未 1刷 2013.07.17
140
5.5.1 関数の半順序関係、4行目
誤 (「foo1 の方がfoo2 よりも適しているということはないことをfoo1≦foo2と書くことにする)
正 (「foo1 の方がfoo2 よりも適しているということはない」ことをfoo1≦foo2と書くことにする)
未 未 1刷 2013.07.17
140
5.5.1 関数の半順序関係、上から8行目
誤 対称律が成り立たず
正 反対称律が成り立ち
未 未 1刷 2013.07.17
143
下から4行目
誤 オーバーロードを一方に導くモジュールの間で曖昧さが生じたときに、オーバーロードを一方に~~
正 ■オーバーロードを一方に導く
モジュールの間で曖昧さが生じたときに、オーバーロードを一方に~~
未 未 1刷 2013.07.17
155
本文下から5行目
誤 stdl.algorithm
正 std.algorithm
未 未 1刷 2013.07.17
183
本文上から10行目(1つ目のリストの直前)
誤 0.0, 0.1,0.2, ..., 1.27:
正 0.0, 0.1,0.2, ..., 1.27
未 未 1刷 2013.07.17
186
1つ目のリストの下の本文6行目
誤 効果なリソース
正 高価なリソース
未 未 1刷 2013.07.17
192
本文下から3行目
誤 Base.number と書くのとsupere.number と書くのは
正 Base.number と書くのとsuper.number と書くのは
未 未 1刷 2013.07.17
195
2つ目のリストのコメント
誤 それを投げる
正 それを捨てる
未 未 1刷 2013.07.17
197
「6.7 カプセル化」7行目
誤 アプリケーションのさまざままモジュール化された要素は、
正 アプリケーションのさまざままなモジュール化された要素は、
未 未 1刷 2015.10.27
217
1つめのリスト 13行目
誤 // Rectangle は以前として抽象クラスである
正 // Rectangle は依然として抽象クラスである
未 未 1刷 2015.11.09
227
最終行
誤 (ISA)
正 (IS-A)
未 未 1刷 2015.11.09
228
1つ目のリストの次の行
誤 (ISA)
正 (IS-A)
未 未 1刷 2015.11.09
229
15行目
誤 alis thisによる
正 alias thisによる
備
考
「alias」の2つ目の「a」が抜けていました。
未 未 1刷 2016.01.25
233
6行目
誤 StackImpl!int StackImpl!double
正 StackImpl!int と StackImpl!double
未 未 1刷 2015.11.09
236
7.1 「構造体(struct)」3~4行目
誤 異なる値を参照する
正 異なるアドレスにある値を参照する
未 未 1刷 2015.11.09
268
2つ目のリストの下、本文2行目
誤 すべてにプリミティブ型と
正 すべてのプリミティブ型と
未 未 1刷 2013.07.17
317
箇条書き内真ん中
誤 デストラクタの冒頭
正 デストラクタの冒頭
未 未 1刷 2013.07.17
345
本文最下行
誤 モジュール名のプレフィックスとしてacme impl ではなくacme を
正 モジュール名のプレフィックスとしてacmeではなく acme impl を
未 未 1刷 2013.07.17
351
本文上から5行目
誤 Windows 7
正 Windows Vista
未 未 1刷 2013.07.17
354
本文上から5行目
誤 dmd の場合は-w
正 dmd の場合は-de
未 未 1刷 2013.07.17
361
本文最終行
誤 後置インクリメントの部分の
正 前置デクリメントの部分の
未 未 1刷 2014.08.27
369
箇条書きの下、本文1行目
誤 <、<=、>、and>=の4 種類の順序比較演算子
正 <、<=、>、そして>=の4 種類の順序比較演算子
未 未 1刷 2013.07.17
388
最終行
誤 自分プログラミングスタイルや
正 自分のプログラミングスタイルや
未 未 1刷 2015.10.22
410
2行目
誤 遭う(だから、D が設計上そのようなスの読み出しを
正 遭う(だから、D が設計上そのような素の読み出しを
未 未 1刷 2015.10.22
415
2行目
誤 自体は手に負えなくなっている。
正 事態は手に負えなくなっている。
未 未 1刷 2015.10.22

感想・レビュー

peng225 さん

2014-06-04

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

ottu さん

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