Concetti Fondamentali sulla Programmazione - PowerPoint PPT Presentation

About This Presentation
Title:

Concetti Fondamentali sulla Programmazione

Description:

Title: Fondamenti di Programmazione Subject: Programmazione Author: Salvo Cavalieri Last modified by: Salvo Cavalieri Created Date: 1/1/1601 12:00:00 AM – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 18
Provided by: SalvoCa6
Category:

less

Transcript and Presenter's Notes

Title: Concetti Fondamentali sulla Programmazione


1
Concetti Fondamentali sulla Programmazione
  • Cosa Significa Programmare
  • Linguaggi di Programmazione
  • Lo sviluppo dei programmi tecniche di
    programmazione
  • Lesecuzione dei programmi
  • Linterpretazione
  • La compilazione
  • Le Librerie
  • Le Fasi di Compilazione e Link
  • Esempio in C

2
La Programmazione
  • Dato un problema INFORMATICO, programmare
    significa
  • Definire lalgoritmo risolutivo, che deve essere
    finito e realizzabile con le risorse disponibili
  • Tradurre lalgoritmo nel linguaggio di
    programmazione scelto, attraverso la particolare
    tecnica di programmazione scelta, rispettando le
    regole sintattiche del linguaggio

3
Linguaggi di programmazione Linguaggio Macchina
  • I primi linguaggi di programmazione coincidevano
    con l'insieme delle istruzioni eseguibili
    dall'hardware.
  • Le istruzioni hardware sono codificate in codice
    binario ogni informazione è rappresentata,
    all'interno della macchina, come una sequenza di
    bit.
  • LOAD 8 potrà essere rappresentata in una macchina
    reale come 00110010, dove 0011 è la
    rappresentazione interna del codice operativo
    LOAD
  • Enorme sforzo richiesto per codificare algoritmi
    semplici.

4
Linguaggi di programmazione Assembly
  • Dalla nascita dei primi calcolatori, si è cercato
    di diminuire lo sforzo e aumentare la
    produttività dell'utente, anche a costo di
    caricare la macchina di maggiori compiti.
  • E meglio risparmiare il tempo dell'uomo anche a
    costo di sprecare tempo-macchina (traduzione di
    programmi e scarsa efficienza del programma).
  • La prima evoluzione dei linguaggi di
    programmazione ha portato ad una codifica di tipo
    simbolico, anziché binaria, dei programmi.
  • Tali versioni simboliche dei linguaggi hardware
    sono note come linguaggi assembly

5
Linguaggi di programmazione Evoluzione
  • Il passo successivo nellevoluzione dei linguaggi
    di programmazione tese a rendere la codifica
    degli algoritmi il più possibile vicina al
    problema da risolvere anziché all'architettura
    della macchina destinata all'esecuzione del
    programma.
  • Non a caso i primi due linguaggi di alto livello,
    FORTRAN e COBOL, hanno costrutti fortemente
    ispirati alla notazione usata per descrivere i
    problemi di maggior rilievo per il calcolo
    automatico degli anni '50, cioè l'elaborazione
    numerica e quella gestionale.

Alto Livello
Assembly
Macchina/binario
MicroProgrammi
Hardware
6
Linguaggi di programmazione Evoluzione
  • Gli anni '70 vedono il fiorire dei linguaggi
    Strutturati
  • il SIMULA 67, lALGOL 68, ma soprattutto il
    PASCAL e il C
  • Negli anni '80 si ha l'affermarsi dei linguaggi
    Object-Oriented (OO)
  • C, Visual BASIC, Java, C

7
La Tecnica di Programmazione
  • Non è legata ad un linguaggio, anche se alcuni
    linguaggi sono ideali per essere abbinati ad una
    specifica tecnica di programmazione
  • Esistono tre tecniche
  • Programmazione NON Strutturata, che produce lo
    Spaghetti Code
  • Programmazione Strutturata Sequenza, Selezione,
    Ripetizione
  • Programmazione ad Oggetti Classe, Oggetto, Metodo

8
LEsecuzione dei Programmi
  • Il programma scritto in un qualunque linguaggio
    deve essere tradotto in linguaggio binario
  • Esistono due soluzioni
  • Interpretazione
  • Compilazione

9
LInterpretazione
  • Funzionamento di un interprete
  • Preleva unistruzione I del programma P scritto
    nel linguaggio L
  • Decodifica I
  • Traduce I in una serie di istruzioni in
    linguaggio macchina M1, M2, , Mn
  • Esegue M1, M2, , Mn
  • Passa allistruzione successiva di P fino a
    quando non si sia raggiunta una istruzione di
    terminazione

10
Lo sviluppo dei programmi basato sulla
Compilazione
Compilazione
Compilazione
Compilazione
Compilazione
File oggetto
File oggetto
File oggetto
Link
Libreria/e
File eseguibile
  • I codici sorgente ed oggetto possono essere
    suddivisi in più file, il codice eseguibile di un
    programma risiede in un unico file

11
Le Funzioni di Libreria
  • In molti linguaggi (quali il C), molte operazioni
    vengono delegate a delle librerie
  • Le funzioni sono divise in gruppi, quali I/O,
    gestione della memoria, operazioni matematiche e
    manipolazione di stringhe
  • Per ogni gruppo di funzioni esiste un file
    sorgente, chiamato file header, contenente le
    informazioni necessarie per utilizzare le
    funzioni (Dichiarazione costanti, funzioni,
    parametri delle funzioni, etc.)
  • I nomi dei file header terminano, per
    convenzione, con lestensione .h (ad es.,
    stdio.h è il file header dello standard I/O nel
    linguaggio C)

12
La compilazione dei file sorgente
  • Un file sorgente contiene un main e un insieme di
    routine, chiamate funzioni, ognuna delle quali
    risolve una piccola parte del problema di
    programmazione
  • Un file sorgente può contenere chiamate a
    funzioni di libreria e chiamate a funzioni
    contenute in altri file sorgenti
  • Il compilatore è esso stesso un programma (o un
    gruppo di programmi) che deve essere eseguito
  • Durante la compilazione avviene
  • Controllo del codice sorgente da parte di un
    preprocessore interpretare speciali direttive di
    precompilazione,
  • Controllo di eventuali errori sintattici (NON
    LOGICI),
  • Produzione di un file in codice Assembly,
  • Trasformazione del file in codice Assembly in un
    altro file in codice OGGETTO (Macchina)
    estensione .obj

13
Il link
  • Il linker è generalmente un programma distinto
    dal compilatore in alcuni ambienti il programma
    di link deve essere lanciato separatamente
  • Il Linker fa in modo che
  • i riferimenti tra diversi file oggetto e con le
    librerie vengano risolti
  • i file oggetto creati dal compilatore vengano
    trasformati in un unico file eseguibile, al quale
    vengano associate le librerie necessarie
    allesecuzione
  • Il risultato prodotto dal Linker è un programma
    eseguibile, che può essere caricato in memoria

14
La Fase di Caricamento
  • Il Caricamento di un programma in memoria,
    avviene nel momento in cui lutente richiede la
    sua esecuzione
  • Durante la fase di caricamento (o loading ), il
    programma eseguibile viene caricato nella memoria
    del calcolatore
  • Le Fasi di Compilazione, Linker e Loading sono
    separate (anche temporalmente)
  • Attenzione luso dei compilatori crea false
    impressioni !

15
Esempio Linguaggio C
  • Molte idee basilari del C derivano dal linguaggio
    BCDL e linguaggio B
  • Nel 1978 Kernighan e Ritchie pubblicano The C
    Programming Language
  • Nel 1983 lAmerican National Standards Institute
    (ANSI) ha iniziato i lavori per la definizione
    dellANSI C
  • Nel 1988 nasce lANSI C

16
Esempio Linguaggio C
  • Per includere un file header in un programma in
    linguaggio C, occorre inserire nel codice
    sorgente
  • ?include ltnomefile.hgt
  • La direttiva ?include è rivolta al preprocessore
  • Si chiama Direttiva di Precompilazione
  • Esempio Per utilizzare printf(), che permette di
    visualizzare dati su terminale, è necessario
    inserire nel sorgente la direttiva di
    precompilazione
  • ?include ltstdio.hgt

17
Esempio Linguaggio C
Include la libreria standard di I/O
?includeltstdio.hgt main() printf(Salve,
mondo\n)
Definisce una funzione main che non riceve alcun
valore come argomento
main richiama la funzione di libreria printf per
stampare la sequenza di caratteri specificata \n
indica il new line
Write a Comment
User Comments (0)
About PowerShow.com