Wednesday, 07 January 2009 arrowHome arrow Articoli arrow Panoramica sul linguaggio D Add to Technorati Favorites
Main menu
Home
Articoli
RSS news
Saputello
Segnalazioni
Info
The Four Keys
Info sullo speciale
Approfondimenti sul codice
C++, STL, Design Pattern
OpenGL, SDL e Computer Graphics
Artwork




Panoramica sul linguaggio D E-mail

Caratteristiche principali del linguaggio D

Vediamo adesso di analizzare una per una le caratteristiche più interessanti del linguaggio D.

  1. Assenza di un preprocessore: il linguaggio D non dispone di un preprocessore, come in C e C++, e tutte le feature ritenute utili e che venivano implementate a livello di preprocessore sono state incluse nel linguaggio stesso. Ciò rende la compilazione più semplice e veloce e il linguaggio più coerente.

  2. Garbage collection: questa feature permette al D di gestire la memoria in maniera automatica minimizzando il lavoro del programmatore e quindi la probabilità di bug oltre che a rendere più leggero il codice sorgente. Il programmatore può comunque, se lo ritiene opportuno, allocare e deallocare esplicitamente ogni tipo di oggetto.

  3. Template: come il C++ anche il D permette l'utilizzo di classi e funzioni template. La sintassi è stata completamente rivista e resa più leggibile e coerente con il resto del linguaggio.

  4. Espressioni regolari: pur non facendo propriamente parte della grammatica del linguaggio le espressioni regolari sono gestite in maniera ottimale attraverso funzioni ad hoc.

  5. Array e stringhe: gli array e le stringhe (trattate come comuni array di caratteri) sono dei tipi fondamentali nel linguaggio D. In particolare il D rende estremamente semplici operazioni come ridimensionare un array, leggere o scrivere una porzione di array, concatenare array, array associativi etc. Grazie a ciò molti dei problemi che il C++ aveva nel gestire le stringhe sono stati eliminati.

  6. Programming by contracts: questa feature del linguaggio permette di specificare le condizioni che devono essere soddisfatte all'entrata e all'uscita da una funzione. Ciò permette di controllare e debuggare in maniera più efficiente il codice. Ciò aiuta anche a rendere più chiaro il codice.

  7. Unit testing: questa feature rende più semplici i test di regressione per programmi e librerie attraverso l'esecuzione automatica di procedure che ne verificano il corretto funzionamento.

  8. Eccezioni: il linguaggio D utilizza il paradigma try-catch-finally al contrario del C++ che utilizza il semplice try-catch.

  9. Thread synchronization: il D mette a disposizione dei programmatori la possibilità di regolare l'accesso a una funzione da parte di thread multipli attraverso l'uso della parola chiave synchronize.

  10. Funzioni e classi annidate: questa feature permette di definire classi e funzioni rispettivamente all'interno di altre classi e funzioni. Ciò permette tra l'altro l'utilizzo di funzioni delegate (closures).

  11. Ereditarietà: al contrario del C++ il D non implementa l'ereditarietà multipla ma quella singola combinata con l'uso di interfacce. Ciò non comporta rilevanti perdite di funzionalità e rende il compilatore considerevolmente più semplice ed efficiente.

  12. Documentazione: attraverso una sintassi estremamente semplificata e studiata ad hoc è possibile estrarre la documentazione dai sorgenti D utilizando degli appositi tools come il Ddoc della Digital Mars.

  13. Front end opensource: il front end del compilatore D, che ne definisce l'implementazione ufficiale, è distribuito sotto licenza opensource. Ciò ha reso possibile ad esempio lo sviluppo del compilatore GNU GDC e rende possibile lo sviluppo di tool di analisi e refactory del codice D.

Conclusioni

Il linguaggio D dispone di moltissime altre feature che vi invito a verficare di persona. Molto interessante a questo proposito è la pagina D vs Other Languages. Che dire, il linguaggio D ha sicuramente un ottimo pedigree, sfoggia feature di prim' ordine ed è giunto a livelli di considerevole stabilità. Speriamo di vederlo presto diffondersi come merita.

 

Riferimenti

  1. Sito ufficiale della Digital Mars - D Links
  2. Documentazione D  
  3. Wiki4D
  4. D Programming Wikibook 

 



 
< Prev   Next >



I più letti
Suggerimenti Google
Novità
© 2006-2007 Michele Bosi
E' vietata la riproduzione, anche parziale, di contenuti e grafica
Ottimizzato per Firefox 2.0 ed Internet Explorer 6.0