「D」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Pkg/AUR テンプレートの更新)
(typo)
 
(3人の利用者による、間の6版が非表示)
1行目: 1行目:
 
[[Category:プログラミング言語]]
 
[[Category:プログラミング言語]]
 
[[en:D (programming language)]]
 
[[en:D (programming language)]]
  +
[[es:D]]
  +
[[pt:D]]
 
[[Wikipedia:ja:D言語]] より:
 
[[Wikipedia:ja:D言語]] より:
 
:D プログラミング言語 (D) は Digital Mars の Walter Bright によるオブジェクト指向・命令型・マルチパラダイムのシステムプログラミング言語です。C++ のリエンジニアリングが元で作られ、C++ の影響を強く受けていますが C++ の派生言語ではありません。D は C++ の機能を再設計すると共に Java, C#, Eiffel などのプログラミング言語で使われている発想から着想を得ています。
 
:D プログラミング言語 (D) は Digital Mars の Walter Bright によるオブジェクト指向・命令型・マルチパラダイムのシステムプログラミング言語です。C++ のリエンジニアリングが元で作られ、C++ の影響を強く受けていますが C++ の派生言語ではありません。D は C++ の機能を再設計すると共に Java, C#, Eiffel などのプログラミング言語で使われている発想から着想を得ています。
   
 
== インストール ==
 
== インストール ==
  +
D でプログラムを組むには2つのものが必要になります: D コンパイラとライブラリです。手早くプログラミングを始めたいときは {{Grp|dlang-dmd}} パッケージグループをインストールするのが一番楽です。このパッケージグループには公式コンパイラ ({{Pkg|dmd}}), 標準ライブラリ {{Pkg|libphobos-devel}}, 開発ツールのコレクション {{Pkg|dtools}} が含まれています。
 
  +
D でプログラムを組むには2つのものが必要になります: D コンパイラとライブラリです。すぐに始める最も簡単な方法は、{{Grp|dlang-dmd}} パッケージグループをインストールすることです。公式コンパイラ ({{Pkg|dmd}})、標準ライブラリ {{Pkg|libphobos}}、および小規模な開発ツールのコレクションである {{Pkg|dtools}} が提供されます。
   
 
== インストールのテスト ==
 
== インストールのテスト ==
  +
 
シンプルな Hello World プログラムでインストールが正しく完了できているか確認できます:
 
シンプルな Hello World プログラムでインストールが正しく完了できているか確認できます:
   
29行目: 33行目:
 
$ dmd -run hello.d
 
$ dmd -run hello.d
   
== 代替コンパイラ ==
+
== 考慮事項 ==
コンパイラに関しては複数の選択肢が存在します。標準のコンパイラ (リファレンス実装) は dmd ですが、{{AUR|gdc}} (GNU D Compiler) や {{Pkg|ldc}} (LLVM D Compiler) も人気があります。どちらも [community] に入っています。
 
   
  +
選択するコンパイラに関しては選択肢があります。リファレンス実装は {{Pkg|dmd}} ですが、{{Pkg|gcc-d}} ([[GCC]] の D フロントエンド) と {{Pkg|ldc}} ([[LLVM]] D コンパイラ) も利用出来ます。
主な違いは dmd のバックエンドは FOSS ではない (Symantec からライセンスを受けている) のに対して、他のコンパイラは完全な FOSS です。3つのコンパイラはどれも同一のフロントエンドコードを共有しているため、言語機能のサポートについては (フロントエンドのバージョンが同じなら) ほとんど同等です。
 
   
  +
2017 年 4 月現在 [https://github.com/dlang/dmd/pull/6680 dmd のバックエンドは FOSS になりました] (Boost ライセンス) すべてのコンパイラーは同じフロントエンドコードを共有するため、言語機能のサポートがほぼ同じになります (フロントエンドバージョンが同じであると仮定します。)
== hardening-wrapper ==
 
   
  +
== 便利なライブラリとバインディング ==
Arch Linux の {{Pkg|dmd}} と {{Pkg|libphobos}} パッケージは PIC のサポートを有効にせずビルドされています。{{Pkg|hardening-wrapper}} を使用して実行ファイルをビルドすると強制的に PIC のサポートが有効になり以下のようにエラーが表示されます:
 
   
{{hc|$ dmd app.d|
 
/usr/bin/ld: app.o: relocation R_X86_64_32 against `__dmd_personality_v0' can not be used when making a shared object; recompile with -fPIC
 
app.o: error adding symbols: Bad value
 
collect2: error: ld returned 1 exit status
 
--- errorlevel 1}}
 
 
以下のような解決方法があります:
 
 
* {{Pkg|hardening-wrapper}} をアンインストールする。
 
* PIC のサポートが有効になっている {{AUR|gdc}} コンパイラを使用する: {{bc|gdc app.d}} もしくは {{Pkg|dub}} を使用する場合: {{bc|1=dub --compiler=gdc}}
 
* [[abs]] を使って {{ic|-fPIC}} フラグを有効にして {{Pkg|dmd}} と {{Pkg|libphobos}} を再コンパイルする。
 
* clang のリンカを使う: {{bc|1=CC=/usr/bin/clang dmd app.d}} もしくは dub を使用する場合: {{bc|1=CC=/usr/bin/clang dub}}
 
 
詳しくは以下のページを参照:
 
* https://issues.dlang.org/show_bug.cgi?id=15054
 
* {{Bug|34983}}
 
* {{Bug|46260}}
 
* http://wiki.dlang.org/Installing_LDC_on_Gentoo#Hardened_Gentoo
 
 
== 便利なライブラリとバインディング ==
 
 
* [https://code.google.com/p/ddt/ DDT] - D のプロジェクトとコード管理のための Eclipse プラグイン
 
* [https://code.google.com/p/ddt/ DDT] - D のプロジェクトとコード管理のための Eclipse プラグイン
 
* [http://mono-d.alexanderbothe.com/ Mono-D] - D でプログラミングするための [http://monodevelop.com/ MonoDevelop] アドイン
 
* [http://mono-d.alexanderbothe.com/ Mono-D] - D でプログラミングするための [http://monodevelop.com/ MonoDevelop] アドイン
66行目: 49行目:
   
 
== 参照 ==
 
== 参照 ==
  +
 
* [https://github.com/D-Programming-Language/phobos/ GitHub の Phobos リポジトリ] - 公式リポジトリ
 
* [https://github.com/D-Programming-Language/phobos/ GitHub の Phobos リポジトリ] - 公式リポジトリ
 
* [http://dlang.org/ The D Programming Language] - D の公式ホームページ
 
* [http://dlang.org/ The D Programming Language] - D の公式ホームページ
 
* [http://planet.dsource.org/ Planet D] - D に関するブログまとめ
 
* [http://planet.dsource.org/ Planet D] - D に関するブログまとめ
  +
* [https://wiki.dlang.org/ D Wiki]

2023年6月2日 (金) 18:49時点における最新版

Wikipedia:ja:D言語 より:

D プログラミング言語 (D) は Digital Mars の Walter Bright によるオブジェクト指向・命令型・マルチパラダイムのシステムプログラミング言語です。C++ のリエンジニアリングが元で作られ、C++ の影響を強く受けていますが C++ の派生言語ではありません。D は C++ の機能を再設計すると共に Java, C#, Eiffel などのプログラミング言語で使われている発想から着想を得ています。

インストール

D でプログラムを組むには2つのものが必要になります: D コンパイラとライブラリです。すぐに始める最も簡単な方法は、dlang-dmd パッケージグループをインストールすることです。公式コンパイラ (dmd)、標準ライブラリ libphobos、および小規模な開発ツールのコレクションである dtools が提供されます。

インストールのテスト

シンプルな Hello World プログラムでインストールが正しく完了できているか確認できます:

import std.stdio;

void main() {
   string yourName = "archer";
   writefln("Hello %s!", yourName);
}

ファイルに上記のコードを貼り付けて hello.d という名前を付けて、ファイルと同じディレクトリで次を実行:

$ dmd hello.d

そうしたら次のコマンドでプログラムを実行することができるはずです:

$ ./hello

また、ディレクトリにオブジェクトファイルを保存せずにコンパイル・実行をしたいときは:

$ dmd -run hello.d

考慮事項

選択するコンパイラに関しては選択肢があります。リファレンス実装は dmd ですが、gcc-d (GCC の D フロントエンド) と ldc (LLVM D コンパイラ) も利用出来ます。

2017 年 4 月現在 dmd のバックエンドは FOSS になりました (Boost ライセンス) すべてのコンパイラーは同じフロントエンドコードを共有するため、言語機能のサポートがほぼ同じになります (フロントエンドバージョンが同じであると仮定します。)

便利なライブラリとバインディング

  • DDT - D のプロジェクトとコード管理のための Eclipse プラグイン
  • Mono-D - D でプログラミングするための MonoDevelop アドイン
  • QtD - D の Qt バインディング
  • GtkD - D のオブジェクト指向 GTK+ ラッパー
  • Derelict - マルチメディアライブラリのバインディング、ゲーム開発向け
  • Deimos - 様々な C ライブラリのバインディングが大量に揃っているプロジェクト

参照