Oggi vi presento un programma realizzato con il linguaggio di programmazione C++; come prima cosa vi spiego le caratteristiche del linguaggio.
Essendo C++ un linguaggio compilato,è necessario, per trasformare un codice sorgente in un codice macchina, un programma chiamato compilatore. Il processo per trasformare il codice sorgente in codice macchina è accompagnato da una rilevazione di potenziali errori, questo processo può essere diviso in 6 parti: preprocessing, scanning, parsing, analisi semantica, generazione del codice e ottimizzazione del codice.
• Preprocessing: elimina i commenti e include i file richiamati dal programma.
• Scanning: riconosce i comandi e funzioni del linguaggio in uso.
• Parsing: effettua un controllo sintattico in modo da identificare comandi o dichiarazioni scritte in modo errato.
• Analisi semantica: controlla se le istruzioni sono scritte in modo coerente.
• Generazione del codice: genera il codice assemblativo che verrà successivamente eseguito dal computer.
• Ottimizzazione del codice: esegue una riesamina del codice in modo da diminuire i tempi di esecuzione.
In queste fasi, ci si può imbattere in due tipi di errori: i fatal errors, ossia quegli errori che impediscono la compilazione del programma, e i warnings, i quali non compromettono la compilazione, ma potrebbero portare a degli errori durante l’esecuzione.
Oltre ad essere un linguaggio compilato, C++ è anche orientato agli oggetti, infatti consente di creare degli “oggetti” che interagiscono tra loro; tuttavia, nel programma che vi verrà spiegato, questo aspetto non sarà presente.
Dopo aver letto ogni parola scritta in un file creato da noi, questo programma controlla se esse sono presenti in una sorta di "vocabolario"; finito il controllo, comunica all'utente il numero di parole trovate, e di quelle non presenti.
Come prima cosa, viene aperto un file da controllare mediante l’istruzione ifstream; con questo comando il file viene aperto in modalità di lettura.
Successivamente viene impostato un ciclo while, il quale grazie alla funzione eof, continuerà fino al termine del file. Nel ciclo viene aperto il file del dizionario su cui controllare le parole, e viene passata la stringa del testo da controllare in una variabile. A questo punto per controllare le parole del dizionario, è necessario un ulteriore ciclo che le controlli fino a quando non verrà trovata quella che si sta cercando; anche in questo caso ho utilizzato un ciclo while con una doppia condizione, una con la funzione eof, e l’altra con una variabile booleana che sarà modificata quando verrà trovata la stringa da cercare; se questa è stata trovata, il contatore delle parole presenti viene incrementato, altrimenti viene incrementato il contatore delle parole non presenti con la relativa stampa. Una volta uscito, viene indicato il numero di parole trovate e non trovate.
Nonostante il programma sia semplice ed efficace, in presenza di un file molto lungo, la sua esecuzione risulterà più lenta.
Federico Danda