D (programlingvo)
D | |
---|---|
objektema programlingvo • proceda programlingvo • funkcia programlingvo • komuna programlingvo • kunrula programlingvo • multparadigma programlingvo • ordonema programlingvo • tradukata programlingvo • programlingvo | |
Paradigmo: | Multiparadigma: Objektema, Ordonema |
Paradigmo(j): funkcia programado • ordonema programado • objektema 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 |
D estas plurparadigma programlingvo kreata de Walter Bright (de Digital Mars) ekde 1999, sub la influo de C++.
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 | redakti fonton]Ĉ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);
}