




























































































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
sides informatica di base - linguaggi
Tipologia: Appunti
1 / 126
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























































































Introduzione ai sistemi Informatici 5/ed
Donatella Sciuto, Giacomo Bugnano, Luca Mari
Copyright 2014
The McGraw-Hill Education s.r.l
Introduzione e storia dell’informatica
L’informazione e la sua codifica
L’elaborazione e la strutturazione dell’informazione
I linguaggi per la formalizzazione dell’informazione
La trasmissione dell’informazione
Le infrastrutture software
Le infrastrutture hardware
Cenni di Sicurezza
Un programma è la rappresentazione di un algoritmo in un
particolare linguaggio di programmazione (Java, C, C++, Python,
PHP, Ruby,…)
Linguaggio di Programmazione è caratterizzato da due componenti
fondamentali
sintassi che specifica come devono essere fatte le istruzioni e
come devono essere composte ( parole chiave , istruzioni ben
formate)
semantica che specifica il significato delle istruzioni della sintassi,
ovvero le sequenze di operazioni che vengono compiute quando
l’istruzione sintattica viene eseguita
‣ I generazione: linguaggi macchina (anni ’50) sono formati da
sequenze di numeri binari (o esadecimali) e rappresentano il livello più
basso di descrizione di un programma
Il linguaggio assembly è un’astrazione del linguaggio macchina:
‣ III generazione: linguaggi imperativi e procedurali (a
partire dagli anni ’70). Il controllo del sistema diventa sempre più
logico e meno meccanico (si accentua il distacco dall’hardware),
inoltre sono disponibili nuovi tipi di dati che possono essere
manipolati più agevolmente. Esempi di questi linguaggi sono Java,
double media=0;
int cont=0;
int somma=0;
for (int i=0;i<v1.length;i++){
if (i%2==0) {
cont++;
somma+=v1[i];
}
}
media=somma/cont;
System.out.println(media);
IV generazione: linguaggi per realizzare ambienti di sviluppo
(dagli anni ‘80) come i linguaggi macro per ambienti Word o Excel,
linguaggi per interrogazione nella gestione delle basi di dati come
‣ V generazione: linguaggi di descrizione dei problemi orientati alla
soluzione automatica (dagli anni ’90). I predecessori sono i
linguaggi funzionali come Lisp ’58 e Prolog negli anni ‘70.
Sono linguaggi di programmazione che incorporano alcune tecniche
di ragionamento deduttivo ed appartengono ad un livello
gerarchicamente ancora più elevato di descrizione di programmi
(sempre più lontani dall’hardware)
Assembly language ha istruzioni che corrispondono univocamente a quelle
macchina, ma esse vengono espresse tramite nomi simbolici. Infatti l’assembly
utilizza codifiche alfanumeriche (codici menemonici) che descrivono
l’operazione che identificano
Il programma prima di essere eseguito deve essere tradotto in linguaggio
macchina (assemblatore)
Vincolo : necessità di conoscere in dettaglio le caratteristiche della macchina
(registri, dimensione dei dati, set di istruzioni)
Anche semplici algoritmi implicano la specifica di molte istruzioni
I costrutti dei linguaggi a basso livello sono semplici e sono eseguibili solo dai
processori a cui si riferiscono.
Essendo direttamente eseguibili dai processori sono molto efficienti dal punto
di vista del tempo
Difficile scrivere programmi in linguaggi a basso livello: lunghi tempi di
sviluppo, difficoltà nell’individuare errori, scarsa riutilizzabilità del codice
prodotto
Linguaggi a basso livello dipendono dall’hardware
I programmi scritti in linguaggi ad alto livello vengono poi
automaticamente tradotti in linguaggio macchina per essere
effettivamente eseguiti dai processori
Questa traduzione richiede tempo
I linguaggi per la formalizzazione dell’informazione
Capitolo 4
Copyright © 2014
McGraw-Hill Education (Italy) srl
Introduzione ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari
Linguaggi di II/III generazione
Un programma scritto in un linguaggio ad alto livello deve essere
tradotto in linguaggio macchina. Questo può essere fatto attraverso
due tipi di traduttori:
Compilatori : accettano in ingresso l’intero programma e producono
in uscita la rappresentazione dell’intero programma in linguaggio
macchina
Interpreti : traducono ed eseguono direttamente ciascuna istruzione
del programma sorgente (ad alto livello), istruzione per istruzione
i per la formalizzazione dell’informazione
Capitolo 4
Unità Centrale di
Elaborazione
Memoria
Bus di
sistema
Programma P in un linguaggio
ad alto livello L
Programma P’ in linguaggio
macchina della CPU
Programma
compilatore del
linguaggio ad alto
livello L
Dati del compilatore
Fase 1
Unità Centrale di
Elaborazione
Memoria
Bus di
sistema
Programma P’ in Dati del programma P’
linguaggio macchina
della CPU
Fase 2