「D言語」の版間の差分
削除された内容 追加された内容
デバッグ用コメントが混入してたので除去。 |
Angol Mois (トーク | 投稿記録) 編集の要約なし |
||
2 行
<small>[[情報技術]] > [[プログラミング]] > D言語</small>
----
D言語はWalter Bright氏によって開発が始められた言語です。<br>
10 ⟶ 9行目:
公式名称は「D language」(D言語)または「D programming language」ですが、英語ではネット検索などの利便性のため「dlang」と表記される場合もあります。
== 目次 ==
16 ⟶ 14行目:
* [[D言語/関数]]
{{stub}}▼
== D言語の特徴 ==
D言語はC++とは違い、C言語とのソースの互換性
▲また、D言語はシステムプログラミング言語を目指しています。システムプログラミング言語とは、オペレーティングシステムそのものの開発もできる言語です。(たとえばC言語はシステムプログラミング言語です。LinuxはC言語で書かれています。)
実際にD言語で開発されたOSが市販や公開されているかはともかく、D言語がOS開発言語も目指してていることは、利用上、とても重要です。なぜなら、ユーザーにとって手間が掛かるかもしれないが、とりあえず、今までC言語で出来たハードウェア制御や、D言語でもひととおり出来るようになる予定・目標だからです。
31 ⟶ 26行目:
* ネイティブコンパイルされるため動作が速い - インタプリタや仮想機械上で動作する言語に比べて非常に高速です。
* 自動メモリ管理 - [[w:ガベージコレクション|ガベージコレクタ(GC)]]を搭載しているため、メモリの取得・開放に関してプログラマが気にする必要はありません。もちろん手動でメモリを管理する方法も用意されています。
* 可読性の高いテンプレート - C++と比べてテンプレートの構文がすっきりしていて仕様を把握するのも簡単です。
* 強力なCTFE(コンパイル時実行) - D言語はかなりの範囲の関数の結果等をコンパイル時に実行することができます。
* 豊富な表現力 - 関数型言語やオブジェクト指向言語といったパラダイムを非常にうまい具合に言語に組み込み、高い水準で両立させています。今後、借用(@live)に関連する機能も充実化される予定です。
* コンパイラの開発しやすさ - D言語はそのコンパイラの開発が簡単になるように設計されており、パースするのもC++とは比べ物にならない速さです。
C, C++ との大きな違いをいくつか挙げます。
*
== コンパイラを動かしてみよう ==
52 ⟶ 54行目:
読者のほとんどはC言語の文法を知っているかもしれませんが、おおまかに上記コードで使用されている文法を説明すると
import モジュール名;
でモジュールを導入します。D言語の
main() というのは、D言語に必ず1つだけ存在する「関数」(かんすう)であり、ここから開始します(なお、どのプログラム言語でも、プログラムの開始点のことを「エントリポイント」といいます)。つまり、D言語のエントリポイントは「main()」関数です。
71 ⟶ 72行目:
Windows版 D言語では現状、日本語の表示があまりよくないです。文字コードは UTF-8 にしないとエラーになります。ですが、UTF-8にしてもWindows版D言語では文字バケをします。
なので、LinuxでD言語を使いましょう。
79 行
== D言語の文法について ==
もし読者が英語が得意でプログラムについて一通り分かっているなら、詳細については公式のドキュメントを読んだ方が早い
初心者の方は、日本語訳もされている [https://tour.dlang.org/tour/ja/welcome/welcome-to-d D言語ツアー]を読むと良いかもしれません。D言語ツアーは初心者むけの公式ガイドの和訳です。
=== 概観 ===
D言語の構文はC言語やJavaに似ており、テキストに書かれたプログラムを1行ずつ処理していく手続き型言語
ただしC言語と異なる部分もあるため、C言語を参考にするには注意が必要です。#include <stdio.h>の代わりにimport std.stdio;となる事や、printf("''文字列''")の代わりにwrite("''文字列''")を使う事は知らなければなりません。
114 ⟶ 113行目:
また void という特殊な型があります。これは値が無いことを表します。
== 基本テクニック ==
358 ⟶ 355行目:
==== 契約・単体テスト ====
== 外部リンク ==
*[https://dlang.org/]
▲{{stub}}
[[Category:コンピュータ言語]]
|