• Non ci sono risultati.

Un programma programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore

N/A
N/A
Protected

Academic year: 2021

Condividi "Un programma programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore "

Copied!
11
0
0

Testo completo

(1)

Introduzione alla Introduzione alla programmazione programmazione

Walter Didimo

Walter Didimo

(2)

Programmi Programmi

Un programma programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore

• La frase deve essere dettagliata dettagliata e non non ambigua ambigua

L’ esecuzione esecuzione di un programma da parte di un calcolatore è

lo svolgimento delle azioni in esso descritte

(3)

Linguaggi di programmazione Linguaggi di programmazione

Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e “comprensibile” da parte di un calcolatore, chiamato linguaggio di programmazione linguaggio di programmazione Un linguaggio di programmazione:

• stabilisce un insieme di regole grammaticali regole grammaticali che deve

essere rispettato nella scrittura di un programma — sintassi sintassi

• stabilisce il significato del programma significato del programma, ovvero la sequenza

di azioni che deve essere eseguita dal calcolatore durante

l’esecuzione del programma — semantica semantica

(4)

Tipi di linguaggi di programmazione Tipi di linguaggi di programmazione

Linguaggio macchina Linguaggio macchina

• sequenze di cifre binarie

• unico linguaggio comprensibile direttamente da un calcolatore

• calcolatori diversi hanno linguaggi macchina diversi

• difficile da comprendere per un essere umano

Linguaggio

Linguaggio assemblativo assemblativo

• mnemonico per un linguaggio macchina

• di basso livello — c’è una corrispondenza uno a uno tra le istruzioni di un linguaggio assemblativo e le istruzioni del corrispondente linguaggio

macchina

Linguaggi di programmazione di alto livello Linguaggi di programmazione di alto livello

• COBOL, FORTRAN, LISP, C, C++, Java, ...

• di alto livello — a ogni istruzione corrispondono molte istruzioni del linguaggio macchina

• facile da leggere e da comprendere

(5)

Esecuzione di programmi Esecuzione di programmi

Un calcolatore non è in grado di eseguire direttamente programmi scritti in linguaggi di alto livello

• un calcolatore è in grado di eseguire direttamente solo programmi specificati nel proprio linguaggio macchina

• noi vogliamo scrivere programmi in un linguaggio di programmazione di alto livello

il programma dovrà essere tradotto in linguaggio macchina prima della sua esecuzione

(6)

Traduttori Traduttori

Un traduttore traduttore è un software che traduce un programma scritto in un linguaggio di alto livello in un equivalente programma in

linguaggio macchina. Esistono due tipi di traduttori:

compilatori compilatori

: traducono per intero il programma di alto livello in un programma equivalente in linguaggio macchina. Il programma così tradotto potrà essere eseguito direttamente dal calcolatore, senza che intervengano altri passi di traduzione

interpreti interpreti

: traducono ciascuna istruzione del programma di alto livello in una sequenza di istruzioni del linguaggio macchina, che viene subito eseguita; si crea alternanza tra traduzione ed

esecuzione (l’esecuzione procede più lentamente)

(7)

Forme di un programma Forme di un programma

codice codice sorgente sorgente

/* un semplice programma in C */

void main (){

printf(“Ciao Mondo!”);

}

...

a0 00 ff 3a 62 b5 7c 99

codice eseguibile ...

codice eseguibile

Ciao Mondo!

esecuzione compilazione

editing

linguaggio di alto livello

linguaggio di alto livello

linguaggio macchina linguaggio macchina

(8)

Dipendenze hardware/software Dipendenze hardware/software

La compilazione e l’esecuzione sono dipendenti dall’ambiente hardware e software (piattaformapiattaforma)

Un compilatore sa tradurre

– da uno specifico linguaggio di programmazione

• ad esempio, Pascal, Fortran, C, C++

– verso uno specifico linguaggio macchina

• relativo a un processore specifico — ad esempio, Intel x86

• relativo a uno specifico sistema operativo — ad esempio, Linux, Unix, Microsoft Windows 95/98/NT/2000/XP

Esiste un compilatore diverso per ciascun linguaggio di programmazione e ciascuna piattaforma

– l’eseguibile prodotto da un tale compilatore può essere eseguito solo nello stesso ambiente hardware-software

(9)

Paradigmi di programmazione Paradigmi di programmazione

Esistono diversi approcci alla programmazione, chiamati paradigmi paradigmi di programmazione

di programmazione

–un paradigma di programmazione caratterizza la struttura di un programma ed il modo in cui vengono comandate le azioni al calcolatore

Fino a qualche anno fa i linguaggi di programmazione più diffusi si ispiravano a paradigmi imperativi paradigmi imperativi

– i programmi apparivano come una sequenza di istruzioni (imperative) che venivano eseguite in modo sequenziale

int somma = 0;

printf (“questo è un esempio che calcola la somma dei primi 10 naturali”);

for (int i=1; i <= 10; i++) somma = somma + i;

printf (“risultato = %d”, somma);

(10)

Paradigma ad oggetti Paradigma ad oggetti

Il paradigma di programmazione ad oggetti programmazione ad oggetti nasce

dall’esigenza di creare software complessi e di grandi dimensioni

• il programma si compone di oggetti che modellano la realtà di interesse – ogni oggetto sa fare delle cose

• gli oggetti interagiscono, scambiandosi messaggi

• il programmatore definisce:

• gli oggetti che formano il programma

• cosa ogni oggetto sa fare

• come e quando gli oggetti interagiscono

(11)

Paradigma ad oggetti e Java Paradigma ad oggetti e Java

In questo corso studieremo i concetti di base della programmazione ad oggetti

• utilizzeremo il linguaggio di programmazione JavaJava

• Java è flessibile, largamente diffuso, e dotato di una vasta gamma di oggetti predefiniti capaci di svolgere servizi utili

Riferimenti

Documenti correlati

Strutture di Dati: Lista &gt;&gt; Rappresentazione con Record e Array. ATTENZIONE ai

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 2 Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright

automaticamente le funzioni della libreria standard di input/output stdio.h , come ad esempio la funzione di stampa su video.

– Nell'istruzione compare l'indirizzo effettivo (fisico) di memoria dove si trova l'operando – MOV AX, [3923:2314].. Modi

Fare un programma che sommi tutti i numeri interi presenti (uno per riga) nel file specificato come primo argomento sulla riga di comando e presenti il totale in output.

• Affinchè un programma scritto in un qualsiasi linguaggio di programmazione (ad es. il C) sia comprensibile (e quindi eseguibile) da un calcolatore, è

Il concetto di variabile nel linguaggio C rappresenta una astrazione della cella di memoria.. L'istruzione di assegnamento, quindi, e` l'astrazione dell'operazione di scrittura

(d) l’intero ottenuto viene assegnato alla variabile base (viene cio `e scritto nella cella di memoria il cui indirizzo `e stato passato a scanf).