Il linguaggio D: fondamenti (Parte 1)

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.

Figura 1: la home page del sito del linguaggio D

Figura 1: la home page del sito del linguaggio D

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.
Figura 2: i vari tipi di compilatori per il linguaggio D

Figura 2: i vari tipi di compilatori per il linguaggio D

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.

Figura 3: il DMD è distribuito per diversi sistemi operativi

Figura 3: il DMD è distribuito per diversi sistemi operativi

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 e potrai fare il download in formato PDF eBook e Mobi per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Una risposta

  1. giako 13 Novembre 2020

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend