Informatica 5

10
Informatica 5 Scrivere e compilare programmi

description

Informatica 5. Scrivere e compilare programmi. Scrivere programmi. Scrivere programmi significa esprimere un algoritmo in un linguaggio comprensibile al calcolatore, ossia utilizzando un linguaggio di programmazione (ad es.: C++) - PowerPoint PPT Presentation

Transcript of Informatica 5

Informatica 5

Scrivere e compilare programmi

Scrivere programmi

• Scrivere programmi significa esprimere un algoritmo in un linguaggio comprensibile al calcolatore, ossia utilizzando un linguaggio di programmazione (ad es.: C++)

• Un programma in C++, prima di essere eseguito dal calcolatore, deve essere compilato, ossia elaborato da un compilatore

Il compilatore

• Il compilatore è anch’esso un programma in funzionamento nel calcolatore, ed ha lo scopo di tradurre programmi scritti in un linguaggio di programmazione in eseguibili, ossia programmi scritti nel linguaggio macchina

• Le istruzioni scritte in linguaggio macchina possono essere lette, decodificate, ed eseguite direttamente dal processore

.cpp e .exe

• Il programma scritto in C++ prende si chiama anche codice sorgente, e il nome del file ha la tipica estesione .cpp (ad es.: prova.cpp)

• Il codice sorgente viene compilato e, se tutto va bene, viene creato il corrispondente codice eseguibile, con estensione .exe (ad es.: prova.exe)

• Il codice eseguibile è pronto per essere eseguito dal calcolatore

codice sorgente

…for (i=0;i<10;i++){ v[i]++;}…prova.cpp

Compilatore C++

codice eseguibile

…000101010101011101010101111010…

prova.exe

La compilazione• Il processo di compilazione consiste di 3 tipi

diversi di analisi• L’analisi lessicale controlla che siano usate parole

corrette del linguaggio di programmazione (ad es.: for , if , ofr )

• L’analisi sintattica controlla che le istruzioni siano costruite in maniera corretta (ad es. for(i=0;i<10;i++) , (i=0; for) )

• L’analisi semantica analizza il significato delle istruzioni (ad es.: “x = x+5;” = “prendi x e aggiornalo sommando 5”)

Limiti della compilazione

• Il programmatore deve fare attenzione• Il successo delle suddette tre analisi non è

garanzia del buon funzionamento del programma

• Un programma scritto correttamente in C++ può non rispettare le specifiche perché il programmatore ha scritto un codice che differisce da quanto ha intenzione di realizzare

Un esempio di programma

#include <iostream>using namespace std;int main(){

cout << “Hello, world!\n”;return 0;

}

“cout” è un comando di output che consta di un insieme di sottocomandi che devono essere eseguti dal calcolatore perché si completi l’operazione di output.I comandi che costituiscono “cout” sono definiti nella libreria “iostream”, che deve essere inclusa nel programma affinché il compilatore comprenda il significato di “cout”

Il linker

• Il compilatore, per completare il suo compito, fa ricorso a un altro programma, chiamato linker

• Il linker connette il main a tutte le librerie incluse al suo interno, in modo da creare un unico eseguibile in cui siano presenti le definizioni di tutti comandi utilizzati nel main

Compilatori e interpreti

• La distinzione tra compilatori e interpreti è la seguente

• Un compilatore analizza l’intero codice sorgente e poi produce un eseguibile

• Un interprete analizza, traduce e fa eseguire al calcolatore una istruzione per volta

• Nell’ambito del C++ si hanno solo compilatori, mentre per altri linguaggi di programmazione (come ad es. Java) esistono degli interpreti