D 1.0   D 2.0
About Japanese Translation

Last update Sat Dec 2 02:46:26 2006

Phobos ランタイムライブラリ

Phobos とは、D言語のコンパイラに付属する、標準ランタイムライブラリです。 PhobosのWiki も合わせてご覧下さい。(訳注: 日本語のPhobos Wiki ページもあります。)

Philosophy

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

Imports

実行時ライブラリは 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.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.openrj
基本的なデータベース
std.outbuffer
データをbyteの配列へと集積
std.path
ファイル名、パス名の処理
std.process
スレッドの生成/破棄
std.random
乱数生成
std.regexp
  • std.signals
  • 正規表現処理関数
    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() 関数