Programmazione degli Elaboratori

Elementi di sintassi C / C++ / Java

Molti elementi della sintassi sono condivisi tra questi linguaggi "ad alto livello", seppur con alcune differenze. Di seguito sono elencati gli elementi principali della sintassi:

Commenti

Un aspetto importante della documentazione di un programma consiste nel corredare il codice di commenti dettagliati ed esaurienti. I commenti sono delimitati in un programma C, C++ o Java dai due simboli /* e */). In C++ e Java e in alcune varianti del C è anche possibile inserire commenti che iniziano con i due simboli // e si estendono fino alla fine della linea.

Dichiarazione di variabili

Prima di tutto è opportuno ricordare che nella programmazione si può definire una variabile come il nome simbolico di una zona di memoria allocata per contenere un dato di un certo tipo. C, C++ e Java sono linguaggi fortemente tipati. Ciò significa che ogni variabile o espressione ha un tipo che può essere identificato leggendo il codice in cui compare ed è quindi noto al momento della compilazione, prima cioè dell'esecuzione. Tipi e variabili sono identificati da identificatori, che consistono in una qualsiasi sequenza di lettere alfabetiche, simbolo "_" (underscore) e cifre il cui primo carattere non sia una cifra. Altra condizione è che l'identificatore non coincida con una parola chiave o riservata del linguaggio. Una variabile deve essere dichiarata prima di essere usata. La dichiarazione di una variabile ha la forma:
(id_tipo)( id_variabile)
cioè un identificatore di un tipo predefinito o definito dal programmatore, seguito dall'identificatore (il nome) della variabile. Esempi di tipi predefiniti sono: char, carattere, double, numero in virgola mobile a doppia precisione, float, numero in virgola mobile a precisione singola, e int, numero intero. Per dichiarare una variabile intera di nome "esempio", si scriverà:
int esempio;

Espressioni e assegnamenti

L'istruzione più elementare è l'assegnamento, che consiste, più precisamente, nell'assegnamento di un valore a una variabile. L'assegnamento ha la forma:
(id_variabile) = (espressione)
Un' espressione è costruita da combinazioni: di costanti di un tipo predefinito, da identificatori di variabili, invocazioni di funzioni (nel caso del C) o metodi (nel caso di C++ e Java), operatori e parentesi tonde, che servono a modificare la precedenza nell' applicazione degli operatori, in modo del tutto analogo a come si costruisce un' espressione aritmetica. Possiamo quindi scrivere un esempio di assegnamento:
vel = acc * tempo;
dove "*" è un operatore aritmetico di moltiplicazione. Un assegnamento restituisce il valore assegnato alla sua variabile al membro sinistro, e in virtù di questo fatto può a sua volta essere utilizzato all' interno di un' espressione. Sono dunque possibili assegnamenti come i seguenti:
z = x = y = 0;
Vi sono poi "operatori di incremento e di decremento", "++" e "--", che possono essere prefissi o suffissi a un identificatore di variabile intera. Supponendo che n sia una variabile intera:

Vettori (array)

Tutti i linguaggi ad alto livello permettono di definire e gestire entità analoghe simili alle "tabelle". Il nome convenzionale che viene dato in italiano a queste entità nei linguaggi di programmazione ad alto livello è vettore, un termine che si richiama all' omonimo concetto matematico. I linguaggi C, C++ e Java permettono, come la stragrande maggioranza dei linguaggi ad alto livello, di costruire vettori i cui elementi sono tipi di base o tipi definiti dal programmatore. Per esempio, un vettore di dieci interi si definisce con la dichiarazione:
int x[10];
A differenza della convenzione generale in matematica, che fa partire gli indici delle componenti di un vettore da 1, in questi linguaggi gli indici partono da 0. Una data componente di un vettore si esprime facendo seguire al nome del vettore il suo indice tra parentesi quadre. Le componenti del vettore x saranno dunque:
x[0], x[1], x[2], . . . , x[9].

Funzioni

La tecnica dei sottoprogrammi, è talmente importante nella pratica della programmazione da meritarsi un costrutto sintattico apposito nei linguaggi ad alto livello. Nel gergo della programmazione ad alto livello invece che di "sottoprogrammi" si preferisce parlare di procedure e funzioni.
Una procedura è un sottoprogramma che prende in ingresso zero o più argomenti o parametri, svolge una particolare elaborazione in base ad essi e non restituisce esplicitamente alcun risultato al programma chiamante.
Una funzione, come suggerisce il nome, è un sottoprogramma che prende zero o più argomenti e restituisce un valore che è funzione degli argomenti al programma chiamante.
Alcuni linguaggi, come C, C++ e Java, non distinguono sintatticamente le funzioni dalle procedure. Una funzione (un metodo in C++ e in Java) si dichiara con la sintassi:
(tipo) (nome funzione) (argomenti)
{
(corpo)
},

dove (tipo) è il tipo del risultato della funzione o la parola chiave void se la funzione è in realtà una procedura; (argomenti) è una lista di zero o più dichiarazioni di argomenti. Il controllo del flusso di esecuzione viene restituito al programma chiamante per mezzo dell' istruzione return nel caso di una procedura; nel caso di una funzione il risultato viene restituito al programma chiamante per mezzo dell'istruzione return (espressione).























































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.