D (programlingvo)

programlingvo

D estas plurparadigma programlingvo kreata de Walter Bright (de Digital Mars) ekde 1999, sub la influo de C++.

D
Logobildo de D
Logobildo de D
objektema programlingvo • proceda programlingvo • funkcia programlingvo • komuna programlingvo • kunrula programlingvo • multparadigma programlingvo • ordonema programlingvo • tradukata programlingvoprogramlingvo
Paradigmo: Multiparadigma:
Objektema, Ordonema
Paradigmo(j): funkcia programado • ordonema programadoobjektema programado
Klaso: tradukila
Aperis en: 1999
Aŭtoro(j): Walter Bright
Tipa sistemo: strikita, statika
Ĉefaj realigoj: DMD, GDC, LDC
Kreita sub la influo de: C, C++, C#, Ĝavo, Eiffel
vdr

La programlingvo D estis projektita kun la scio de la bonaj kaj malbonaj kvalitoj de C++. Ĝi prenas multajn konceptojn de C++, kaj uzas pli facilan sintakson por ili (precipe pri ŝablonoj, kaj deklaroj). Ĝi ankaŭ aldonas konceptojn pruntitajn de aliaj lingvoj kiel: (fakultativa) aŭtomata memoradministrado, internaj funkcioj, modulaj testoj, projekto per kontraktoj, sennomaj funkcioj, inter aliaj.

D ebligas programi ĉe malalta nivelo, simile al C kaj C++; kaj malsimile al Java. Esprimiloj kiuj ebligas tion estas, ekzemple, asembla lingvo ene de D programoj kaj la eblo malaktivigi aŭtomatan memoradministradon. Ankaŭ, la lingvo estis projektita por tradukiĝi rekte al maŝinkodo, kompare kun Java kaj C#, kiuj plejofte tradukiĝas al kodo por virtuala maŝino.

Hodiaŭe, ekzistas tri ĉefaj tradukiloj de la programlingvo D. La unua estas DMD, la referenco de la lingvo, verkata de Walter Bright mem kaj ofte ŝanĝata. La aliaj estas GDC, la tradukilo de GNU; kaj LDC, la tradukilo de LLVM. Aliflanke, la programlingvo mem havas du versiojn: D versio 1, kiu nur ricevas la necesajn korektojn; kaj D versio 2, kiu havas multe pliajn kapablojn, sed ŝanĝiĝas pli ofte.

Ekzemplaj programoj redakti

Ĉi tiu programo simple montras la operandojn de la komanda linio:

 import std.stdio;       // por writefln()
 void main(char[][] args)
 {
     foreach(int i, char[] a; args)
         writefln("args[%d] = '%s'", i, a);
 }

Eksteraj ligiloj redakti