D 1.0   D 2.0
About Japanese Translation

Last update Thu Oct 28 17:54:39 2010

Phobos ランタイムライブラリ

Phobos は、D言語のコンパイラに付属する標準ランタイムライブラリです。 PhobosのWiki も合わせてご覧下さい。

設計方針

Phobosのどのモジュールも、 できる限り次の目標に適合するように書かれています。 ここに上げる項目は要求ではなく、あくまで目標です。 Dは宗教ではなくプログラミング言語ですから、時には、 定めたゴールが矛盾していたり非生産的になる場合があることを認識しています。 そして、 そんな時でもプログラマは仕事を進めないといけません。
マシン・OS 非依存なインターフェイス
移植性のないコードを理由もなく書くのは避けよう、 という標語は広く受け入れられています。これはしかし、 OSの一般的でない機能へのアクセスを防ぐべき、 と解釈するのは間違いです。
簡単な処理は簡単に
byteの配列をファイルに書き出す、 と言ったよく使う簡単な処理は、 簡単なコードで書けるべきです。私は今まで一度も、基本的なファイル I/O を簡単で効率的に実装したクラスライブラリを見たことがありません。
クラスは互いに独立となるよう努力すべし
ファイルからでデータを読んでbyteの配列に格納しようとしたら、 メガバイト級のコードが読み込まれた、 という事態は避けたいものです。 クラス間の独立はまた、一つのクラスのミスを修正する際に、 クラスライブラリの他の部分に影響を及ぼさずに済むことも意味しています。
OSのAPI関数やCランタイムライブラリへの、意味のないラッパを含まない
Dは Cのライブラリ関数やOSのAPI関数へ直接アクセスする手段を提供しています。 意味のないDのラッパは、 単にムダとゴミとバグを増やすだけです。
クラスの実装にはDBCを使う
これによって DBC (契約プログラミング) の価値を証明します。 DBCはクラスのデバッグの補助となるだけでなく、 ユーザーの皆さんが正しくクラスを使うための助けにもなります。 DBCは、クラスライブラリに対する偉大な力です。
エラー処理には例外を使う
エラー処理 参照のこと。

パッケージ一覧

実行時ライブラリは import 文によってimportできます。 おのおの、 以下のパッケージのどれか一つに属しています:
std
中核となるモジュール群です。

std.windows
Windows に特有のモジュール。

std.linux
Linux に特有のモジュール。

std.c
Cの関数への単純なインターフェイスモジュール。 例えば、標準Cライブラリ関数へのインターフェイスは std.c の中に入ることになります。std.c.stdio が C の stdio.h と対応します。

std.c.windows
Windows API 関数に対応するモジュールです。

std.c.linux
Linux API 関数に対応するモジュールです。

etc
std階層と同じ構造のモジュール階層のルートです。 etcモジュールの中身はDの標準モジュールではありません。ここにあるモジュールは、 実験中であるとか、stdに置けるほどには安定していないけれど役に立つ などの理由でここに置かれています。


std: 中核ライブラリモジュール

std.base64
Base64 形式のエンコード/デコード
std.bigint
任意精度整数演算
std.bind
関数引数の部分束縛"
std.bitarray
Bit配列
std.boxer
型のboxing/unboxing
std.compiler
Dコンパイラの実装に関する情報
std.conv
文字列から整数への変換
std.ctype
文字の簡単な分類
std.date
日付と時刻に関する関数。ロケールに対応。
std.file
read, write, append などの基本的なファイル操作
std.format
値を書式指定しながら文字列へ変換
std.gc
ガベージコレクタの制御
std.intrinsic
コンパイラの組み込み関数
std.math
通常使われる数学関数 sin, cos, atan など全て
std.md5
MD5 ダイジェストの計算
std.mmfile
メモリマップド・ファイル
object
オブジェクトの継承階層のルートクラス
std.outbuffer
データをbyteの配列へと集積
std.path
ファイル名、パス名の処理
std.process
スレッドの生成/破棄
std.random
乱数生成
std.regexp
正規表現処理関数
std.socket
ソケット。
std.socketstream
接続済みのブロッキングソケットのためのストリーム。
std.stdint
目的に応じた様々な整数型の定義
std.stdio
標準入出力
std.cstream
ストリーム入出力
std.stream
ストリーム入出力
std.string
配列演算でカバーされない、文字列処理
std.system
CPUやOSに関する情報問い合わせ
std.thread
スレッド毎に1つが対応する。スレッドに関する操作
std.uri
URI(Uniform Resource Identifier)エンコード/デコード
std.utf
UTF文字列のエンコード/デコード
std.zip
zipファイルの読み書き
std.zlib
データの圧縮/伸張

std.windows: Windows OS 特有のモジュール

std.windows.syserror
Windowsのエラーコードを文字列に変換します

std.linux: Linux OS 特有のモジュール


std.c: Cの関数へのインターフェイス

std.c.stdio
printf() のような、C の stdio 関数へのインターフェイス

std.c.windows: Windowsの関数へのインターフェイス

std.c.windows.windows
Windows API へのインターフェイス

std.c.linux: Linuxの関数へのインターフェイス

std.c.linux.linux
Linux API へのインターフェイス

std.c.stdio

int printf(char* format, ...)
C の printf() 関数