Bahasa pengaturcaraan D

D merupakan bahasa pengaturcaraan sistem pelbagai-paradigm imperatif berorentasi objek oleh Walter Bright dari Digital Mars. Ia asalnya (re-engineering) C++, tetapi sungguhpun ia banyak dipengaruhi oleh bahasa tersebut, ia bukannya variasi C++. D telah mereka semula ciri-ciri C++ dan dipengaruhi oleh konsep yang digunakan dalam bahasa lain, seperti Java, C# dan Eiffel. Versi 1.0 yang stabil dibebaskan pada 2 Januari 2007. Versi ujian, 2.000, dibebaskan pada 17 Jun 2007.

 Contoh 
Kata kekunci diwarnakan , rentetan pula , manakala ulasan diwarnakan .

 Contoh 1 
Atur cara contoh berikut memaparkan argumen-argumen baris perintahnya.
Fungsi main ialah titik masuk bagi atur cara D, dan args
ialah tatasusunan rentetan mewakili argumen-argumen baris perintah.
Rentetan dalam D ialah sebuah tatasusunan aksara yang diwakili oleh char[].

  std.stdio;       
  main([][] args)
 {
     (i, a; args)
         writefln(, i, a);
      0;
 }

Kenyataan foreach boleh mengulang apa jua koleksi, di sini ia menghasilkan tatasusunan indeks (i) dan nilai (a) daripada tatasusunan
args. Jenis bagi indeks i dan nilai a diketahui melalui jeni bagi tatasusunan args.

 Contoh 2 
Berikut menunjukkan penggunaan tatasusunan bersekutu bagi membentuk struktur data yang lebih kompleks

  std.stdio;       

  main([][] args)
 {

     [][] [[]] container;


     container[] ~= ;
     container[] ~= ;
     container[] ~= ;


      ([] person, [][] items; container)
         display_item_count(person, items);
      0;
 }

  display_item_count([] person, [][] items)
 {
     writefln(person, , items.length, );
 }

 Contoh 3 
Contoh yang mempunyai banyak anotasi berikut menonjolkan banyak perbezaan berbanding C++, sambil masih mengekalkan beberapa aspek C++.



  std.stdio;                        

  main([][] args)                 
 {

     writefln(             
              );


     (argc, argv; args)
     {
          cl =  CmdLin(argc, argv); 	                 
 	writefln(cl.argnum, cl.suffix, , cl.argv); 	

 	 cl; 	              
     }


      specs
     {

 	 count, allocated;

 	[10000] bigarray = ;
     }

     specs argspecs([][] args)


     {
 	(args.length > 0);                   
     }
     (result)
     {
 	(result.count == CmdLin.total);
 	(result.allocated > 0);
     }

     {
 	specs* s =  specs;

 	s.count = args.length;  
 	s.allocated = (args).sizeof; 
 	(arg; args)
 	    s.allocated += arg.length * (arg[0]).sizeof;
 	 *s;
     }


     [] argcmsg  = ;
     [] allocmsg = ;
     writefln(argcmsg ~  ~ allocmsg,
 	    argspecs(args).count,argspecs(args).allocated);
      0;
 }


  CmdLin
 {

     {
 	 _argc;
 	[] _argv;
 	 _totalc;
     }

     :

 	( argc, [] argv)
 	{
 	    _argc = argc + 1;
 	    _argv = argv;
 	    _totalc++;
 	}

 	() 
 	{

 	}

 	 argnum() 
 	{
 	     _argc;
 	}

 	[] argv() 
 	{
 	     _argv;
 	}

 	[] suffix() 
 	{
 	    [] suffix; 
 	    (_argc)
 	    {
 		 1:
 		    suffix = ;
 		    ;
 		 2:
 		    suffix = ;
 		    ;
 		 3:
 		    suffix = ;
 		    ;
 		:  
 		    suffix = ;
 	    }
 	     suffix;
 	}


 	 (_totalc) total()
 	{
 	     _totalc;
 	}



 	{
 	    (_argc > 0);
 	    (_totalc >= _argc);
 	}
 }

 Pautan luar 

 Digital Mars: D programming language

 DSource, an open source community for the D Programming Language.
 Dprogramming.com, home of the DFL windowing library.
 Wiki4D, "the wiki for the d programming language"
 gdc, D front-end for GCC
 The Computer Language Benchmarks Game 
 D Documentation Wiki 
 D Language Feature Table
 Video presentation of D by Walter Bright
 Ddbg - Win32 D debugger 

 Rujukan 

D