I linguaggi di programmazione Il linguaggio di programmazione è il linguaggio che viene utilizzato per tradurre un procedimento risolutivo in una forma comprensibile all’elaboratore. Il risultato di questa traduzione si chiama programma. I moderni linguaggi di programmazione sono di tipo evoluto di alto livello nel senso che utilizzano termini del linguaggio naturale, sono più vicini al problema e facilitano il lavoro del programmatore I nomi dei linguaggi meno recenti sono: FORTRAN, COBOL, BASIC. I linguaggi di programmazione più recenti sono: PASCAL, C, JAVA. Il testo di un programma scritto usando un linguaggio di programmazione, detto programma sorgente (in inglese source), deve essere tradotto in linguaggio macchina (praticamente nel linguaggio formato dalle cifre binarie O e 1), per poter essere eseguito dal computer Questa traduzione,viene effettuata da un programma traduttore che produce una sequenza di istruzioni eseguibili dall’elaboratore. Due sono le modalità di base per eseguire questa traduzione: interpretazione: il programma, che prende il nome di interprete, considera il testo sorgente istruzione per istruzione e lo traduce mentre lo esegue; su questo principio lavorano linguaggi quali Basic o linguaggi per la gestione di basi di dati compilazione: il programma traduttore si chiama compilatore e trasforma l’intero programma sorgente in linguaggio macchina, memorizzando in un file il risultato del proprio lavoro. Così un programma compilato una sola volta può essere eseguito, senza altri interventi, quante volte si vuole. Il risultato della compilazione si chiama programma oggetto La compilazione La compilazione consente di avere programmi detti eseguibili, che possono essere utilizzati senza possedere necessariamente il compilatore sul sistema dove il programma deve funzionare La compilazione deve essere seguita da un'ulteriore operazione detta linking (collegamento), che viene svolta da un programma apposito detto linker (collegatore). Tale operazione consiste nell'aggiungere al programma compilato i moduli del compilatore che realizzano le funzioni richieste dai vari comandi, e contemporaneamente di risolvere i riferimenti a celle di memoria o a variabili. Alla fine di questo lavoro si ottiene il programma eseguibile Il compilatore genera il proprio output a condizione che l'input, cioè il programma sorgente, sia formalmente corretto, nel senso che deve rispettare le regole del linguaggio scelto. Ogni volta che questo non si verifica, il compilatore emette uno o più messaggi che segnalano l’errore Gli errori possono riguardare l'uso di termini non appartenenti al linguaggio (errori di tipo lessicale) oppure la costruzione di istruzioni non corrette dal punto di vista delle regole grammaticali del linguaggio (errori di tipo sintattico). Naturalmente il compilatore non è in grado di rilevare errori logici, cioè riguardanti la correttezza del procedimento risoIutivo Un particolare programma di utilità durante il lavoro di programmazione è il debugger (letteralmente significa spulciatore), che serve per individuare eventuali errori logici nel programma. Il linguaggio C++ Il linguaggio C, ideato da Dennis M. Ritchie e da Brian W Kernighan attorno al 1970, è uno dei più importanti linguaggi per la programmazione strutturata ancora oggi utilizzato. Con il passare degli anni le esigenze della programmazione cambiano Risulta difficile la redazione e la successiva revisione di programmi lunghi e complessi Nascono i primi linguaggi di programmazione orientati agli oggetti, per venire incontro a queste nuove esigenze Permettono di suddividere il programma in entità completamente separate, che poi vengono inglobate solo al termine del lavoro di programmazione. Un vantaggio offerto dai linguaggi orientati agli oggetti è che si prestano al riutilizzo del codice Nasce così un nuovo linguaggio di programmazione ad oggetti: il C++(1983) Il linguaggio C++ è un linguaggio compilato Per ottenerne l'esecuzione e trasformare un codice sorgente C++ in un programma vero e proprio è necessario utilizzare un compilatore Per scrivere un codice sorgente si può usare un programma per la scrittura di documenti di testo detto editor, disponibile sul computer,oppure un compilatore con editor integrato nell'ambiente di programmazione come Dev-C++ Dev-C++ Bloodshed Dev-C++ è un ambiente di sviluppo integrato (IDE integrated development environment) cioè un software che aiuta i programmatori nello sviluppo del codice C/C++. Offre strumenti necessari per compilare, eseguire il debug e provare i programmi sviluppati. Dev-C++ è gratuito e funziona su S.O. Microsoft Windows (Win98/98SE/Me/2000/NT/XP/2003). L'interfaccia di Dev-C++ visualizza alcuni elementi comuni ad altre finestre di Windows, con la maggior parte dello schermo dedicato all'editor di testo. Uno spazio più limitato è dedicato al browser dei file e delle classi del progetto, e a monitorare i messaggi che arrivano dal compilatore e dal debugger. L'editor di testo offre parecchie opzioni interessanti in aggiunta alla classica colorazione sintattica, come l'auto-indentazione del codice, o la comparsa di tooltip che mostrano il prototipo di una funzione quando la si chiama. barra strumenti barra del titolo barra dei menu titolo del file codice C messaggi di errore del compilatore editor di testo Come lavorare? Menu file – nuovo – file sorgente Digitare il codice nella finestra dell’editor Salvare il codice con estensione .cpp (es. esercizio1.cpp) prima della compilazione e comunque ogni tot di tempo (ad esempio ogni 5 min) Compilare facendo click con il mouse sulla barra degli strumenti o in alternativa menu Esegui - compila Correggere eventuali errori di sintassi e compilare nuovamente Al termine di una compilazione andata a buon fine, verrà generato un file detto eseguibile con estensione .exe Eseguire facendo click con il mouse sulla barra degli strumenti o in alternativa menu Esegui – esegui Ovviamente, la stessa esecuzione si può ottenere lanciando il file .exe, senza mandare necessariamente in esecuzione Dev-C++ Creare una base In generale, la struttura di un programma scritto in C/C++ è la seguente: #include<iostream.h> #include<stdlib.h> int main() { …… ……. Corpo del programma ……. …….. system("pause"); return 0; } inclusione librerie Posso creare un sorgente predefinito per evitare di scrivere ogni volta le righe di codice che si ripetono. Attraverso le immagini seguenti, cercate di fare la stessa cosa sul vostro compilatore Dev-C++. In questo modo ogni volta che aprirete un nuovo file sorgente, automaticamente compariranno quelle righe di codice.