Questo è il primo di due articoli che tratteranno la programmazione in linguaggio D. E' un linguaggio di programmazione generico tipizzato, con accesso a livello di sistema e una sintassi molto simile al linguaggio C. Con il linguaggio di programmazione D i programmi vengono creati molto facilmente, si leggono e si capiscono in modo semplice e, soprattutto, la loro esecuzione è molto veloce.
Introduzione
I linguaggi di programmazione sono tantissimi. Non esiste programmatore che li conosca tutti. I due articoli hanno lo scopo di far conoscere il D e insegnare quante più nozioni possibili, in modo semplice e lineare. Si vedrà che, con le conoscenze iniziali del linguaggio C, non sarà poi così complicato impararne uno nuovo. Gli articoli saranno focalizzati, soprattutto, sulla pratica in modo che gli utenti possano, sin da subito, scrivere e compilare i primi propri programmi.
Perché imparare un nuovo linguaggio di programmazione?
I programmatori C o C++ non avrebbero bisogno di imparare un nuovo linguaggio di programmazione...o no? Il mondo del software, in realtà, è in continua evoluzione molto velocemente. Essi hanno bisogno di un linguaggio di programmazione che si aggiorni. La memoria disponibile nei PC e la potenza di calcolo sono molto aumentate e tali esigenze non possono essere integrate negli attuali linguaggi.
Installazione
Il primo passo da compiere è quello di scaricare il compilatore sul proprio PC. Si acceda, dunque, al sito https://dlang.org/ e si clicchi su "Other Downloads" per aprire la pagina dei download diversificati, come mostrato in Figura 1. Il sito stesso, di piacevole e amichevole navigazione, è di ottima consultazione e il programmatore, in teoria, non avrebbe bisogno di accedere ad altro materiale informativo. In esso si trovano documentazioni, riferimenti, esempi, pacchetti e qualsiasi altra notizia utile.
Qui l'utente ha tante possibilità e può scegliere tra i seguenti compilatori, come evidenziato dalla Figura 2:
- DMD
- è la versione ufficiale;
- contiene sempre le ultime innovazioni del linguaggio;
- prevede una semplice installazione;
- la compilazione dei programmi è molto veloce;
- implementa le architetture i386, amd64.
- GDC
- è il compilatore basato sul famoso GCC;
- permette una potente ottimizzazione;
- supporto molto importante;
- implementa le architetture i386, amd64, x32, armel, armhf e altre.
- LDC
- è basato su LLVM;
- permette una potente ottimizzazione;
- prevede il supporto per Android;
- implementa le architetture i386, amd64, armel, armhf e altre.
Ovviamente, scegliamo la versione ufficiale, la DMD, e procediamo cliccando sul link "Download". Si tratta, in realtà, di un link interno che fa scivolare un pò più giù la pagina, mostrando i sistemi operativi adatti alle proprie esigenze, come evidenziato in Figura 3. Per quanto riguarda il Windows si consiglia di scaricare la versione compressa 7z, in modo che non vi sia installazione vera e propria ma solo uno scompattamento. Il proprio file system resta, in tale maniera, pulito in caso di cancellazione del compilatore. L'archivio pesa circa 22Mb.
Una volta scaricato e scompattato in qualsiasi cartella, il compilatore potrà essere utilizzato fin da subito. Normalmente i suoi files eseguibili sono contenuti nella directory "dmd2\windows\bin". Occorre accedere a una finestra di terminale e impostare il percorso di ricerca (path) su tale locazione. Dopodiché si può accedere alla propria cartella degli esempi, da dove poter compilare i primi sorgenti.
Il nostro primo programma
Bene, senza andare per il sottile iniziamo subito a scrivere il primo listato e a produrre un eseguibile funzionante. Con un editor di testi qualsiasi andiamo a creare il sorgente, al quale assegniamo il nome di "prova.d" (attenti al suffisso finale) e digitiamo il seguente codice:
import std.stdio; void main() { writeln("Salve mondo!"); }
Eh si, al momento sembra proprio il nostro vecchio caro linguaggio C, leggermente modificato. La prima riga importa, infatti, la libreria standard per l'input e l'output. La funzione writeln() ha, come bene si può prevedere, il compito di redirigere sullo standard output il contenuto del suo parametro. Fin qui è molto semplice. Si compili il programma con il comando da console:
dmd prova.d
e si prema invio. Dopo qualche istante, nella cartella di lavoro, saranno prodotti i seguenti files, come da visualizzazione del file system:
Nome file | Ultima modifica | Tipo | Dimensione |
prova.d | 11/09/2020 19:13 | File D | 1 kb |
prova.exe | 11/09/2020 19:16 | Applicazione | 248 kb |
prova.obj | 11/09/2020 19:16 | File Obj | 97 kb |
Il file oggetto non è indispensabile per l'esecuzione, anzi, può essere pure cancellato. Inoltrando il comando da console:
prova
oppure
prova.exe
il programma verrà eseguito, visualizzando a video la fatidica frase "Salve mondo!".
I tipi di dati
A differenza del C standard, il linguaggio D prevede tanti tipi di dati in più. Ecco, di seguito quelli standard:
Tipo di dato | Descrizione |
void | nessun tipo |
bool | valore booleano |
byte | signed 8 bits |
ubyte | unsigned 8 bits |
short | signed 16 bits |
ushort | unsigned 16 bits |
int | signed 32 bits |
uint | unsigned 32 bits |
long | signed 64 bits |
ulong | unsigned 64 bits |
cent | signed 128 bits (reserved for future use) |
ucent | unsigned 128 bits (reserved for future use) |
float | 32 bit floating point |
double | 64 bit floating point |
real | largest FP size implemented in hardware. 80 bits for x86 CPUs or double |
ifloat | imaginary float |
idouble | imaginary double |
ireal | imaginary real |
cfloat | a complex number of two float values |
cdouble | complex double |
creal | complex real |
char | unsigned 8 bit |
wchar | unsigned 16 bit |
dchar | unsigned 32 bit |
Speriamo che i tipi "cent" e "ucent" li implementino presto. Il seguente listato esegue una grossa somma tra due numeri interi a 64 bit.
import std.stdio; void main() { ulong v1,v2,v3; v1=174444073709551615; v2=102676767676767633; v3=v1+v2; writeln("Valore della somma: ",v3); }
Compilando ed eseguendo il programma il risultato sarà: [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2229 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
Tutta la parte degli array, associativi e non, sembra copiata pari pari da Python.