1 / 10

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++)

xia
Download Presentation

Informatica 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informatica 5 Scrivereecompilareprogrammi

  2. 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

  3. 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

  4. .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

  5. codice sorgente … for (i=0;i<10;i++){ v[i]++; } … prova.cpp Compilatore C++ codice eseguibile … 000101010101011101010101111010 … prova.exe

  6. 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”)

  7. 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

  8. 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”

  9. 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

  10. 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

More Related