Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


linguaggi informatica di base per esame, Appunti di Elementi di Informatica

sides informatica di base - linguaggi

Tipologia: Appunti

2018/2019

Caricato il 29/09/2019

annaunivr99
annaunivr99 🇮🇹

4.4

(11)

8 documenti

1 / 126

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
I linguaggi per la formalizzazione
dell’informazione
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Anteprima parziale del testo

Scarica linguaggi informatica di base per esame e più Appunti in PDF di Elementi di Informatica solo su Docsity!

I linguaggi per la formalizzazione

dell’informazione

Introduzione

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

Linguaggi di Programmazione

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

Linguaggi a basso livello

Vicini all’hardware

‣ 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:

CLR A 00000000
ADD A 00010101
ADD B 00010110

Linguaggi a basso livello

Vicini all’hardware

Programma per calcolare la media

Linguaggi a basso livello

Vicini all’hardware

‣ 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,

C++, C#…

Linguaggi ad alto livello

Vicini all’utente

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

SQL,…

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

Linguaggi ad alto livello

Vicini all’utente

Il linguaggio assembly

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

Dipende dall’hardware

Linguaggi a basso livello

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

Linguaggi ad alto livello

Linguaggi II/III generazione

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

Programma in linguaggio
procedurale
(Codice sorgente)
Programma in linguaggio
macchina
(Codice oggetto)
Traduttore
Programma in linguaggio
assemblatore
(Codice sorgente)
Programma in linguaggio
macchina
(Codice oggetto)
Assemblatore

Basso livello Alto livello

Due tipi di traduttori

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

Compilatore

i per la formalizzazione dell’informazione

Capitolo 4

Compilatore

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