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


Introduzione all'informatica: Architettura del computer, sistemi operativi e reti, Sintesi del corso di Elementi di Informatica

Riassunto libro Informatica Umanistica

Tipologia: Sintesi del corso

2019/2020

Caricato il 03/05/2020

ASI888
ASI888 🇮🇹

5

(1)

2 documenti

1 / 22

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
CAPITOLO UNO: FONDAMENTI DI INFORMATICA E DI HARDWARE
INFORMATICA: IL TRATTAMENTO AUTOMATICO DELLE INFORMAZIONI
Il termine "informatica" o tecnologia dell’informazione (I.T.) deriva dal francese
informatique
e ed è coniato negli
anni '60 da Dreyfus il quale mediante la contrazione dei termini
information e automatique
volle battezzare la
disciplina tecnico-scientifica che si occupa della
progettazione e costruzione di macchine in grado di trattare, o
elaborare, in modo automatico, l'informazione
.
I benefici: riduzione dei tempi; meno errori e fare calcoli che all’uomo richiederebbero competenze poco comuni.
Poiché negli ultimi decenni il potenziale dei singoli calcolatori si è notevolmente incrementato grazie alla loro
interconnessione in rete, la convergenza tra la tecnologia dell'informazione e le telecomunicazioni, che si
occupano della trasmissione dell’informazione a distanza con lo scopo di comunicare; ha dato origine a una
nuova disciplina che va sotto il nome di Information&Communication Technology (ICT) per esempio telefoni
cellulari, tv, radio, lettori MP3 e macchine fotografiche.
Il dato, l’informazione e la conoscenza
Dato, informazione e conoscenza si collocano rispettivamente su tre livelli, in ordine crescente, di astrazione.
Dato: un insieme di simboli, tracciati su un supporto fisico che rappresenta le proprietà di un oggetto nel
mondo reale. Disporre di un dato non comporta alcun vantaggio a meno che esso non sia messo in
relazione con la proprietà cui si riferisce e lo si trasformi in informazione.
Informazione: dato messo in relazione con la proprietà cui si riferisce
Conoscenza: rappresenta un livello di astrazione ancora maggiore, significa disporre di regole che
permettono di trarre vantaggio da tale informazione.
L'approccio alla risoluzione dei problemi basato sulle informazioni è una delle conquiste più importanti nella
storia dell'umanità, consente di compiere ragionamenti e quindi di prendere decisioni sugli oggetti del mondo
reale.
I linguaggi formali
I linguaggi possono essere di due tipi:
1. Linguaggi naturali, come ad esempio l'italiano. Essi sono ambigui, cioè assumono una pluralità di
significati a seconda del contesto. I linguaggio naturale è meno ambiguo, per gli uomini, quando la frase
viene pronunciata all'interno di un contesto.
2. Linguaggi formali, vengono sviluppati in informatica. Essi sono usati da un calcolatore e sono privi di
ambiguità. Vengono utilizzati nella matematica, nella logica e dell'informatica; ovvero in tutti gli ambiti in
cui è importante evitare l’ambiguità.
La definizione di un linguaggio formale prevede: l'individuazione di un alfabeto (insieme di simboli) e la definizione
di una grammatica (insieme di regole). Le semantiche formali consentono di attribuire un significato alle frasi in un
linguaggio formale.
La codifica e la rappresentazione dell’informazione
In informatica si usa un linguaggio binario:un alfabeto estremamente ridotto, che contiene soltanto i simboli "0" e
"1".
Nei calcolatori ogni informazione è codificata in bit (contrazione di
binary digit)
, ovvero un simbolo scelto su tale
alfabeto.
Nei calcolatori ogni informazione è rappresentata esclusivamente con l’impiego di sequenze bit.
La memoria di un calcolatore è costituita da dispositivi bistabili, ovvero dispositivi fisici in grado di assumere due
configurazioni alternative (Kilobit = 210 bit, Megabit=220 e Gigabyte=230 byte).
Un bit può assumere due configurazioni possibili, 0 e 1, e si possono ottenere diverse sequenze:
2 bit=4 (22) sequenze possibili sono 00,01,10,11
3 bit=8 (23) sequenze possibili sono 000,001,010,011,100,101,110,111
8 bit= 256 (28) sequenze possibili sono 00000000,00000001...11111111
8 bit=1 byte
Poiché in un calcolatore tutte le informazioni sono rappresentate in forma binaria, sotto forma di sequenze di bit,
la memoria, la componente del calcolatore avente lo scopo di memorizzare dati nel tempo, è costituita da
dispositivi bistabili. La sua capacità, la quantità cioè di dati che è in grado di memorizzare, può essere misurata in
bit. Mentre nel Sistema Internazionale i multipli sono declinati sulle potenze di 10, in informatica (Sistema binario), i
multipli risultano dalle potenze di 2 (210, 220...).
Infatti un Kilobit=210 e un Gigabyte=230.
Gli strumenti per l’elaborazione dell’informazione
"Elaborazione dell'informazione"= qualsiasi attività condotta sull'informazione che comprende creazione, modifica,
confronto, conservazione e trasmissione (comunicazione a distanza nello spazio).
Ciò avviene in 3 passaggi:
l'informazione viene codificata sotto forma di dati su un supporto fisico;
il supporto viene sottoposto a una trasformazione fisica che genera nuovi dati, nuove sequenze di simboli;
i dati generati dal passo precedente vengono decodificati portando una nuova informazione.
L 'informazione in ingresso all'elaborazione è denominata input, mentre in uscita dall'elaborazione è denominata
output.
I linguaggi di programmazione sono linguaggi formali progettati espressamente per descrivere algoritmi in modo
tale che possano essere eseguiti da un calcolatore. Sono caratterizzati da una sintassi semplice, una semantica
limitata e assenza di ambiguità.
Programma= formulazione di un algoritmo in un linguaggio di programmazione.
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16

Anteprima parziale del testo

Scarica Introduzione all'informatica: Architettura del computer, sistemi operativi e reti e più Sintesi del corso in PDF di Elementi di Informatica solo su Docsity!

CAPITOLO UNO: FONDAMENTI DI INFORMATICA E DI HARDWARE

INFORMATICA: IL TRATTAMENTO AUTOMATICO DELLE INFORMAZIONI

Il termine "informatica" o tecnologia dell’informazione (I.T.) deriva dal francese informatique e ed è coniato negli anni '60 da Dreyfus il quale mediante la contrazione dei termini information e automatique volle battezzare la disciplina tecnico-scientifica che si occupa della progettazione e costruzione di macchine in grado di trattare, o elaborare, in modo automatico, l'informazione. I benefici: riduzione dei tempi; meno errori e fare calcoli che all’uomo richiederebbero competenze poco comuni. Poiché negli ultimi decenni il potenziale dei singoli calcolatori si è notevolmente incrementato grazie alla loro interconnessione in rete, la convergenza tra la tecnologia dell'informazione e le telecomunicazioni, che si occupano della trasmissione dell’informazione a distanza con lo scopo di comunicare; ha dato origine a una nuova disciplina che va sotto il nome di Information&Communication Technology (ICT) per esempio telefoni cellulari, tv, radio, lettori MP3 e macchine fotografiche.

Il dato, l’informazione e la conoscenza Dato, informazione e conoscenza si collocano rispettivamente su tre livelli, in ordine crescente, di astrazione. ● Dato: un insieme di simboli, tracciati su un supporto fisico che rappresenta le proprietà di un oggetto nel mondo reale. Disporre di un dato non comporta alcun vantaggio a meno che esso non sia messo in relazione con la proprietà cui si riferisce e lo si trasformi in informazione. ● Informazione: dato messo in relazione con la proprietà cui si riferisce ● Conoscenza: rappresenta un livello di astrazione ancora maggiore, significa disporre di regole che permettono di trarre vantaggio da tale informazione. L'approccio alla risoluzione dei problemi basato sulle informazioni è una delle conquiste più importanti nella storia dell'umanità, consente di compiere ragionamenti e quindi di prendere decisioni sugli oggetti del mondo reale.

I linguaggi formali I linguaggi possono essere di due tipi:

  1. Linguaggi naturali, come ad esempio l'italiano. Essi sono ambigui, cioè assumono una pluralità di significati a seconda del contesto. I linguaggio naturale è meno ambiguo, per gli uomini, quando la frase viene pronunciata all'interno di un contesto.
  2. Linguaggi formali, vengono sviluppati in informatica. Essi sono usati da un calcolatore e sono privi di ambiguità. Vengono utilizzati nella matematica, nella logica e dell'informatica; ovvero in tutti gli ambiti in cui è importante evitare l’ambiguità. La definizione di un linguaggio formale prevede: l'individuazione di un alfabeto (insieme di simboli) e la definizione di una grammatica (insieme di regole). Le semantiche formali consentono di attribuire un significato alle frasi in un linguaggio formale.

La codifica e la rappresentazione dell’informazione In informatica si usa un linguaggio binario:un alfabeto estremamente ridotto, che contiene soltanto i simboli "0" e "1". Nei calcolatori ogni informazione è codificata in bit (contrazione di binary digit) , ovvero un simbolo scelto su tale alfabeto. Nei calcolatori ogni informazione è rappresentata esclusivamente con l’impiego di sequenze bit. La memoria di un calcolatore è costituita da dispositivi bistabili , ovvero dispositivi fisici in grado di assumere due configurazioni alternative (Kilobit = 210 bit, Megabit=220 e Gigabyte=230 byte).

Un bit può assumere due configurazioni possibili, 0 e 1, e si possono ottenere diverse sequenze: ● 2 bit=4 (2^2 ) sequenze possibili sono 00,01,10, ● 3 bit=8 (2^3 ) sequenze possibili sono 000,001,010,011,100,101,110, ● 8 bit= 256 (2^8 ) sequenze possibili sono 00000000,00000001... 8 bit=1 byte Poiché in un calcolatore tutte le informazioni sono rappresentate in forma binaria, sotto forma di sequenze di bit, la memoria, la componente del calcolatore avente lo scopo di memorizzare dati nel tempo, è costituita da dispositivi bistabili. La sua capacità, la quantità cioè di dati che è in grado di memorizzare, può essere misurata in bit. Mentre nel Sistema Internazionale i multipli sono declinati sulle potenze di 10, in informatica (Sistema binario), i multipli risultano dalle potenze di 2 (2^10 , 2^20 ...). Infatti un Kilobit=2^10 e un Gigabyte=2^30.

Gli strumenti per l’elaborazione dell’informazione "Elaborazione dell'informazione"= qualsiasi attività condotta sull'informazione che comprende creazione, modifica, confronto, conservazione e trasmissione (comunicazione a distanza nello spazio). Ciò avviene in 3 passaggi: ● l'informazione viene codificata sotto forma di dati su un supporto fisico; ● il supporto viene sottoposto a una trasformazione fisica che genera nuovi dati, nuove sequenze di simboli; ● i dati generati dal passo precedente vengono decodificati portando una nuova informazione. L 'informazione in ingresso all'elaborazione è denominata input , mentre in uscita dall'elaborazione è denominata output. I linguaggi di programmazione sono linguaggi formali progettati espressamente per descrivere algoritmi in modo tale che possano essere eseguiti da un calcolatore. Sono caratterizzati da una sintassi semplice, una semantica limitata e assenza di ambiguità. Programma = formulazione di un algoritmo in un linguaggio di programmazione.

Gli strumenti formali per l’ elaborazione dell’ informazione sono combinazioni di linguaggi formali e di algoritmi in cui se i dati di partenza rappresentano correttamente le informazioni sul mondo reale anche i dati risultanti faranno lo stesso.

Dispositivi automatici per l'elaborazione o per il trattamento delle informazioniI sistemi manuali : forniscono una codifica dei dati ma si affidano completamente all'uomo per l’esecuzione delle trasformazioni fisiche su di essi. Esempio: calcolo con carta e penna. ● I sistemi (semi)automatici rigidi : sono in grado di operare singole trasformazioni fisiche sui dati ma richiedono indicazioni dell’uomo, il quale deve esercitare il controllo. Esempio: la calcolatrice. ● I sistemi automatici flessibili : dispongono di una memoria all’ interno della quale sono, rappresentati i dati e le istruzioni, una codifica esplicata delle trasformazioni fisiche da operare sui dati stessi. Esempio: il calcolatore. Evoluzione storica dei sistemi per l'elaborazione dell'informazione

  • Il primo strumento adottato dall'uomo per la rappresentazione dell'informazione numerica è costituito dalle dieci dita. -Uso dell' abaco in Cina dal 2000 a.C. L'abaco è un telaio con le guide parallele, che corrispondono alle unità, alle decine, alle centinaia. -Nel 17° Oughtred realizzò il regolo calcolatore, uno strumento di calcolo analogico che consente di calcolare divisioni, moltiplicazioni, elevamenti di potenza... -Pascal realizzò la Pascalina, una calcolatrice meccanica che consentiva di eseguire addizioni e sottrazioni avvalendosi di ruote dentate, corrispondenti a unità, decine, centinaia.
  • L'analytical engine, una macchina in grado di operare in input e output su schede perforate con una memoria che potesse contenere 1.000 numeri con 50 cifre decimali ciascuno, una unità aritmetica in grado di eseguire le 4 operazioni aritmetiche.
  • Zuse realizzò prototipi di calcolatore basati sui relè elettromagnetici (un relè è un interruttore elettrico la cui apertura e chiusura può essere controllata con un altro circuito elettrico). -Flowers realizzò Colossus, il primo calcolatore completamente elettronico. -Anni ‘40= l’ ENIAC, primo calcolatore elettronico universale, e l’ EDVAC, il calcolatore elettronico programmabile che usava aritmetica binaria e un unico dispositivo di memoria. L’ architettura si rifà a Von Neumann. -Anni ‘50= transitor entrano nel mercato sostituendo le valvole termoioniche con risultati meno costosi, più veloci e di dimensioni più piccole. -Anni ’60= grazie a microchip (circuiti integrati) e ai microprocessori i computer diventano più piccoli portando più avanti al personal computer. La macchina di Turing (MdT) è un dispositivo semplice e potente che elabora l’informazione automatica. È costituito da: ● un alfabeto contenente Blank; ● un nastro suddiviso in celle ognuna delle quali contiene un simbolo; ● una testina che legge il nastro; ● un insieme di stati tra cui uno iniziale e uno finale; ● un registro che memorizza gli stati; ● una tabella in cui sono registrate tutte le azioni. La macchina di Turing universale (UTM)è una macchina in grado di simulare il funzionamento di qualsiasi macchina di T. La UTM impiega un dispositivo di memoria unico per contenere dati e istruzioni. La tesi Church-Turing sostiene che se una funzione è considerata calcolabile allora esiste una macchina di T. per farlo.

L’architettura di Von Neumann Diviene il riferimento per qualsiasi calcolatore digitale. L’obiettivo era costruire un calcolatore universale le cui caratteristiche dovevano essere: ● la presenza di un dispositivo di memorizzazione di dati e istruzioni; ● l’uso dell’aritmetica binaria; ● creazione di un dispositivo di elaborazione separato da quello di memorizzazione. Secondo questa architettura esso deve essere composto da: ● processore (CPU), che ha il compito di leggere le istruzioni e le esegue operando trasformazioni sui dati; ● memoria, un insieme di unità elementari di memorizzazione (celle) ciascuna delle quali può contenere un dato o un istruzione; ● interfaccia, di input e di output, che gestisce l'interazione con l'ambiente esterno; ● bus, un canale di comunicazione che gestisce lo scambio di informazioni tra gli altri sottosistemi. Quando si progetta un CPU è necessario identificare tutte le operazioni elementari che essa è in grado di compiere e assegnare a ciascuna di esse un‘istruzione la cui esecuzione consisterà nell'espletamento della corrispondente operazione elementare. L'insieme di tutte le istruzioni in binario specifiche per una determinata CPU è detto linguaggio macchina. Due calcolatori sono compatibili quando usano lo stesso linguaggio macchina. Un difetto dell’architettura è noto come il collo di bottiglia di von Neumann : una CPU perde tempo nell'attesa che un dato sia letto/scritto nella memoria. Questo avviene soprattutto se le si richiedono elaborazioni semplici su grosse quantità di dati.

Hardware e SoftwareHardware(HW): componente dura. Sono le componenti tangibili meccaniche ed elettroniche; parti indispensabili per eseguire programmi nel SW.

Memoria di massa o secondaria Garantisce la persistenza dei dati; rispetto alla memoria centrale, offrono una maggiore capacità e un minor costo di memorizzazione, però i tempi di accesso sono più lunghi. Alcune memorie si basano su supporti rimovibili per la cui lettura il calcolatore deve essere dotato di un apposito dispositivo chiamato drive che può essere o integrato all’interno dello chassis del calcolatore o esterno, connesso con un cavo. ALtre memorie di massa sono sono fisse all’interno dello chassis. Il backup è la produzione di copie aggiuntive dei dati conservati su un dispositivo di memoria allo scopo di consentire il ripristino del contenuto informativo di un calcolatore. In funzione della tecnologia impiegata la memoria secondaria si divide in: ● dispositivi magnetici= il supporto delle memorie di massa è costituito da materiale ferro-magnetico. Essi sono: ○ floppy disk= il supporto di memorizzazione rinnovabile è costituito da un disco di materiale plastico racchiuso in un involucro rettangolare; ○ disco rigido= il supporto di memorizzazione è costituto da uno o più dischi, detti piatti, di solito in vetro o alluminio con uno strato di materiale ferro-magnetico; ○ nastro magnetico= nastro plastificato avvolto su una bobina o raccolto in una cassetta. Hanno accesso sequenziale e non diretto. ● dispositivi ottici = supporti rimovibili inseriti in un apposito drive (lettore) che possono essere letti con l'ausilio di una luce laser. Alcuni supporti si configurano come memoria di sola lettura (ROM), altri sono scrivibili (il masterizzatore può scrivere solo una volta sul supporto) mentre altri ancora sono riscrivibili (il contenuto informativo può essere scritto e modificato molte volte). I supporti ottici più diffusi sono: CD, DVD, BD; hanno tutti un diametro di 12 cm ma hanno capacità molto diverse. ○ CD → capacità di 700 MB. ○ DVD → nato a fine anni '90, materiale audiovisivo con capacità di 4,7 GB (= a 7 CD). ○ BD → capacità da 25 GB a 50 GB (su supporti dual layer), materiale audiovisivo ad alta risoluzione. ● memorie flash (EEPROM)= è un supporto il cui contenuto informativo può essere scritto e cancellato e riscritto mediante processi elettrici. Non sono volatili. Essi sono. ○ memory card= che è una piccola scheda che supporta la memoria di calcolatori di piccole dimensioni. ○ drive USB= è adatto allo scambio di dati tra calcolatori. Il loro limite è che hanno al massimo un milione di cicli di cancellazione-scrittura.

Gerarchie di memoria Per ridurre gli effetti negativi causati dal collo di bottiglia di von Neumann si usa il principio di località: ● temporale= se un programma fa riferimento a una particolare cella di memoria è probabile che esso, nell’immediato futuro, faccia riferimento alla stessa cella. ● spaziale= se un programma fa riferimento a una particolare cella di memoria è probabile che esso, nell’immediato futuro, faccia riferimento a celle vicino ad essa. Una cache è un altro dispositivo di memorizzazione caratterizzato da capacità più limitata e maggiore velocità. Oltre a memoria centrale e memorie di massa, un calcolatore ha un’articolata gerarchia di memorie. I livelli più vicini alla CPU sono più veloci e con meno capacità secondo questo schema: Registri della CPU= massima velocità con capacità di pochi byte; Chace di livello 1= contenuta nella CPU, garantisce qualche decina di kilobyte; Chace di livello 2= 512 kilobyte; Chace di livello 3= sulla scheda madre garantisce una capacità di 2 megabyte; memoria centrale; dischi interni; dischi esterni.

Le periferiche Sono dispositivi, connessi con varie modalità all'unità centrale di un calcolatore, che supportano l’immissione (input) e l’emissione (output) di dati. La connessione del calcolatore con un dispositivo periferico o di memoria di massa si realizza tramite un’apposita interfaccia collegata da una parte al bus e dall’altra al dispositivo. La comunicazione tra interfaccia e dispositivo può essere: ● seriale= prevede la presenza di un unico canale consentendo quindi la trasmissione di 1 singolo bit alla volta; ● parallela= prevede la presenza di più canali di trasmissione paralleli consentendo quindi la trasmissione simultanea di gruppi di bit (1 byte). Per un tipo di dispositivo possono esisterne versioni che offrono interfacce di tipo diverso.

La tastiera è il dispositivo più comune di input che rende disponibili una serie di tasti identificati da simboli. ● tasti modificatori= tasti che non producono direttamente alcun input ma, premuti in combinazione con altri, ne modificano l'effetto; tasti funzione= vengono usati per consentire l'invio rapido di comandi ai software applicativi; tasti freccia= hanno funzioni specifiche per l’editing del testo.

Il video è detto anche schermo, monitor o display è il dispositivo di output più comune. È un’apparecchiatura elettronica in grado di visualizzare immagini, testo e filmati. Lo schermo è costituito da una matrice di piccolissimi rettangoli, detti pixel, che possono essere controllati singolarmente dal sistema, attribuendo a ciascuno di essi un

colore e generando ciò che a noi appare come una distribuzione di punti colorati piccolissimi e vicinissimi: l’immagine. La CPU gestisce lo schermo avvalendosi di una scheda grafica (scheda di espansione) che ha la funzione di mantenere una mappa dello schermo, ovvero una memoria con le informazioni relative al colore da attribuire a ciascun pixel. Tra le caratteristiche più importanti di un video si deve considerare la dimensione dell'immagine visibile.È normalmente misurata in pollici lungo la diagonale. Il rapporto d’aspetto è invece la frazione che esprime il rapporto tra le dimensioni della base e dell'altezza dell'immagine visualizzata. Il suo valore standard è 4:3, ma è più comune il formato panoramico con il rapporto 16:9. La risoluzione indica il numero massimo di pixel visualizzabili nelle 2 dimensioni. Risoluzioni più alte indicano pixel più piccoli e determinano una migliore qualità della resa grafica. Altre caratteristiche importanti sono: profondità di colore, luminosità, contrasto, frequenza di aggiornamento e l’angolo di visibilità. Le tecnologie impiegate per la costruzione del video sono: ● raggi catodici (CRT)= usati nel passato, hanno prezzi bassi ed eccellenti contrasto e brillantezza; le dimensioni e il peso sono elevati ed hanno un alto consumo energetico; ● cristalli liquidi(LCD)= hanno dimensioni e peso contenuti e basso consumo energetico; ● plasma= sono compatti e leggeri ma hanno un prezzo e un consumo elevato. Il videoproiettore è un dispositivo che si sostituisce al video per proiettare l'immagine su un grande schermo sia in un ambiente didattico sia per conferenze.

La quasi totalità dei software offre all'utente un'interfaccia grafica (GUI): sul video sono rappresentati oggetti grafici detti controlli, interattori o widget con il quale l'utente può interagire in modo molto intuitivo servendosi di un dispositivo di puntamento. Operando su di esso l'utente determina, sullo stesso video, il movimento di un puntatore o cursore a forma di freccia. Quando il cursore viene portato in corrispondenza di uno dei controlli, l’utente opera sul dispositivo di puntamento scatenando l’esecuzione di un'operazione che il software associa a tale controllo. La pressione su uno di questi pulsanti viene chiama click. Il dispositivo di puntamento è il mouse che è mantenuto sotto il palmo della mano e fatto scivolare su una superficie orizzontale. Lo scivolamento del mouse meccanico sulla superficie determina il rotolamento di una pallina posizionata sulla parte inferiore e tale movimento si ripercuote su alcune rotelle interne al mouse, e viene comunicato al calcolatore che provvede a muovere il cursore sullo schermo. Oltre allo scivolamento si può interagire con il mouse mediante uno o più pulsanti. L’ operazione che consiste nello schiacciare e rilasciare uno di essi prende il nome di click (o singolo click). Se è ripetuta 2 o 3 volte si parla di doppio o triplo click. Si parla di trascinamento quando si mantiene premuto un pulsante, trascinando il mouse, e giunti alla posizione di destinazione lo si rilascia. Altri dispositivi di puntamento sono: ● trackball= mouse meccanico rovesciato; ● joystick= impiegato nei videogiochi; ● touchpad= presenza di sensori che riconoscono la posizione e il movimento di un dito; ● tavoletta grafica= l'utente traccia disegni o scrive un testo su una superficie piana con un apposito stylus con la modalità con cui opera con la penna sulla carta. ● touchscreen= le funzioni della tavoletta vengono assunte dal video che si trasforma in un potente dispositivo di input/output.

La stampante imprime testi o immagini su fogli di carta. in Europa si utilizzano fogli di carta in formato standard A4. I formati A3-A0 richiedono richiedono l’impiego di stampanti per formati grandi, definite plotter. Altre funzioni sono la rilegatura e la stampa fronte-retro. Le stampanti possono essere monocromatiche (stampano in nero su formato bianco) e stampanti a colori. Essa può essere di 3 tipi: ● a getto d’inchiostro= spruzza sulla carta microscopiche gocce di inchiostro; costa poco e normalmente viene usata negli uffici e nelle case; ● a laser= stessa tecnologia delle fotocopiatrici, il foglio di carta a contatto con il rullo coperto da materiale fotosensibile raccoglie il toner (inchiostro in polvere) che vi rimane incollato; ● a impatto= la testina di stampa presenta degli aghi che possono essere controllati singolarmente per per fuoriuscire dalla stessa in direzione della superficie del foglio da stampare. Altre caratteristiche importanti sono: ● risoluzione= misurata in DPI, punti per pollice; ● velocità= misurata in ppm , pagine per minuto; ● multifunzionalità= si ha se la stampante è integrata da scanner o modem che ne rendono possibile l'impiego come fotocopiatrice e fax.

I dispositivi per l’acquisizione delle immagini sono in grado di digitalizzare un’immagine, di generare cioè una sua codifica in pixel atta ad essere memorizzata in un calcolatore. I dispositivi input che digitalizzano un‘immagine sono: ● scanner= acquisisce immagini presenti su un supporto; le caratteristiche più importanti riguardano le dimensioni massime dell'immagine trattabile, la profondità di colore e la risoluzione misurata in ppi (pixel per pollice); ne esistono diversi 3 tipi: ○ scanner piano= digitalizza l’immagine appoggiata su una finestra orizzontale di vetro ○ scanner manuale= acquisisce l’immagine mentre l’operatore lo fa scorrere sulla superficie stessa ○ scanner per pellicola= acquisisce immagini presenti sulla pellicola fotografica

Alan Turing viene considerato il padre fondatore dell'informatica moderna. Egli inventò la macchina di Turing (MdT) , un dispositivo molto potente per l’elaborazione dell'informatica. La macchina è astratta poichè lo studio delle sue proprietà aiuta a comprendere i concetti e i limiti connessi all'elaborazione automatica dell’informazione. Essa è costituita da: ● alfabeto= insieme di simboli contenente il simbolo speciale blank ● nastro suddiviso in celle= supporto fisico su cui inizialmente è codificata l'informazione. Ogni cella contiene un simbolo dell'alfabeto ● testina= Si muove lungo il nastro leggendo e modificando il contenuto ● stati= contenente uno stato iniziale e uno o più stati finali ● registro di stato= memorizza lo stato corrente scelto. È la memoria interna del sistema. ● tabella delle azioni/funzione di transizione. Quando la MdT viene attivata si hanno queste operazioni: lettura del simbolo contenuto nella cella corrente individuazione della riga in cui i primi due elementi sono lo stato corrente e il simbolo contenuto. La cella riporterà a lato il simbolo X, il verso V e lo stato S. scrittura di X nella cella corrente spostamento della testina nella cella adiacente nel verso V impostazione di S nel registro di stato.

Turing definì la macchina di Turing universale (UTM) come una macchina di Turping in grando di simulare il funzionamento di qualsiasi altra macchina di Turing e ne descrisse in dettaglio una possibile realizzazione. In questo ambito bisogna anche menzionare la tesi di Church-Turing secondo cui se una funzione è intuitivamente considerata calcolabile, allora esiste una macchina di Turing in grado di calcolarla. Questa tesi è accettata come vera perchè non sono mai stati verificati dei controesempi. È importante perchè è determinata da due conseguenze:

  1. proprietà degli algoritmi possono essere studiate più facilmente sulle MdT
  2. se si costruisce un nuovo modello di calcolo esso sarà potente almeno quanto tutti i modelli di calcolo esistenti.

INGEGNERIA DEL SOFTWARE È la branca dell'ingegneria che si occupa di sviluppare approcci sistematici e disciplinati allo sviluppo, alla messa in opera e alla manutenzione del software. Vi sono diverse fasi del ciclo di vita del software: ● analisi= lo scopo è la produzione di un documento di specifica contenente la definizione del problema che il software dovrà risolvere e dei costi per la sua realizzazione ● progettazione= definisce le caratteristiche dei singoli moduli che la compongono ● implementazione= realizzazione di uno o più programmi che costituiranno il prodotto software ● collaudo= test per verificare se il software soddisfa i requisiti indicati nella fase di analisi ● rilascio= installazione del prodotto ● manutenzione= attività di modifica per l'eliminazione di malfunzionamenti.

Il software può essere facilmente duplicato e distribuito su supporti economici, ma è soggetto alle norme sul diritto d'autore. In alcuni casi si può comprare da un produttore anche la versione sorgente del software e la titolarità del diritto d’autore per poterlo liberamente impiegare; in altri casi il produttore di un software immette il proprio prodotto sul mercato concedendo la licenza d'uso in genere a un numero limitato di calcolatori e vietandone la copia, la modifica e la ridistribuzione. Con la Licenza shareware il prodotto può essere utilizzato per un periodo di prova; una volta scaduto si richiede la registrazione e un versamento di denaro. Con Licenza freeware il software viene distribuito gratuitamente dal produttore e può essere copiato.

Il software per i calcolatori viene classificato in due categorie: ● applicativo= applicazioni che risolvono/supportano l'utente nella risoluzione di problemi specifici. Molte sono le applicazioni disponibili in ambito applicativo: ○ applicazioni di videoscrittura= stesura di documenti di testo, correzione, formattazione. ○ applicazioni per la gestione di fogli elettronici= effettuazione di calcoli, elaborazione di dati mediante tabelle ○ applicazioni per la produzione di presentazioni multimediali ○ applicazioni di desktop publishing= produzione di volantini/brochure. ○ applicazioni per la gestione di basi di dati ○ editor web (HTML)= realizzazione di piccoli siti web. ○ applicazioni grafiche e di fotoritocco ○ applicazioni la gestione delle finanze individuali ○ organizer= sostituiscono l'agenda cartacea. ○ applicazioni di project management= gestione della pianificazione di un progetto. Altre applicazioni diffuse: ○ OCR= riconoscimento dei caratteri all'interno delle immagini derivanti dall'acquisizione con scanner ○ CAD= disegno tecnico, anche tridimensionale videogiochi audio player e video player. ● di base= programmi di utilizzo generale. Sempre più diffuse sono le app (mobile application) ovvero applicazioni realizzate per smartphone o altri dispositivi mobili che mirano a fornire all’utente la possibilità di trarre benefici da alcune caratteristiche offerte da tali dispositivi (mobilità, connettività, multimedialità…).

IL SOFTWARE DI BASE: IL SISTEMA OPERATIVO

Il sistema operativo è il software di base ed è costituito da un insieme di macchine virtuali. La macchina virtuale è formata dall’ hardware (macchina fisica) che viene corredato a un primo strato di software, una collezione di programmi progettati per fornire funzionalità aggiuntive rispetto a quelle rese disponibili dalla macchina fisica. Questa macchina offre un'interfaccia che fornisce ad altri programmi la possibilità di trarre vantaggio dall'impiego di queste funzionalità. Un moderno sistema operativo include: nucleo gestore della memoria gestore dei dispositivi di I/O file system gestore della rete interprete dei comandi. Le moderne CPU associano alle proprie istruzioni dei livelli di privilegio : alcune possono essere eseguite solo dai programmi che rientrano in una delle macchine virtuali che costituiscono il sistema operativo. Ii sistemi operativi più spesso impiegati sono Linux, Windows, iOS e Android.

La gestione della CPU I primi calcolatori elettronici erano monoprogrammati : eseguivano un solo programma per volta e non disponevano di un sistema operativo. Poi venne introdotto il monitor e un sistema operativo in grado di automatizzare l'avvio dei programmi. Mediante il Job Control Language (JCL ) si poteva predisporre di un job, cioè un programma eseguito dal monitor per organizzare l'esecuzione di un certo numero di programmi. I calcolatori impiegati secondo tale modalità vennero definiti sistemi batch. Poi si pensò che bisognava recuperare anche i tempi di inattività corrispondenti all’attesa per le operazioni asincrone , ovvero gli accessi ai dispositivi di I/O e di memoria di massa lenti e fuori dal controllo della CPU. Così facendo i calcolatori divennero sistemi multiprogrammati, potevano tenere in RAM più programmi. Negli anni ‘60 si introdusse la possibilità per il calcolatore di interagire con l’utente nel corso dell’esecuzione di un programma. Nacquero molte applicazioni e vennero classificate in: ● applicazioni I/O bound= interattive, favoriscono lo spreco della risorsa CPU ● applicazioni CPU bound= non interattive, richiedono l'elaborazione da parte della CPU.

Si collegarono allora più terminali allo stesso calcolatore che divenne un sistema multitasking (o timesharing) in gradi di offrire un parallelismo virtuale ovvero di simulare per ciascun utente la presenza di una CPU a lui dedicata. Il sistema multitasking si basa sul concetto di processo (entità statica). Quando è richiesta l'esecuzione di un programma, il sistema operativo crea un nuovo processo e gli colloca in RAM lo spazio per le istruzioni e lo spazio per i dati. In ogni istante, un processo si trova in uno dei seguenti stati: ● pronto= il processo attende il suo turno per essere chiamato a transitare allo stato successivo ● in esecuzione= il processo ha accesso alla CPU che ne esegue le istruzioni ● in attesa= il processo è in attesa del completamento di un'operazione asincrona. Sui PC, in qualsiasi istante, è una sola la finestra attiva (abilitata cioè all'input dalla tastiera). Il processo corrispondente a essa è detto in foreground ; per le finestre non attive vengono detti in background.

La gestione della memoria centrale L’esecuzione di un programma richiede la creazione di un processo a cui è necessario assegnare, nella RAM, spazio per il codice e per i dati. La multiprogrammazione (coesistenza di più processi) favorisce la nascita di conflitti tra essi per l'impiego di tale risorsa e impone la presenza di un gestore per risolverli. Esso deve essere in grado di: controllare la ram garantire lo spazio necessario a ciascun processo proteggere lo spazio da intrusioni non autorizzate gestire spazi comuni. Queste attività sono realizzate attraverso la memoria virtuale che rende disponibile a ogni processo un suo spazio di indirizzamento virtuale per cui ogni programma opera come se avesse a suo disposizione l’intera RAM.

La gestione delle periferiche I sistemi operativi, dagli anni '60, hanno inglobato un gestore con lo scopo di consentire a ogni processo di lavorare su periferiche virtuali. L’impiego di una data periferica su un calcolatore con un determinato sistema operativo è subordinato alla disponibilità del driver che fornisce al sistema operativo i dettagli operativi per gestire una periferica. Molti sistemi operativi sui PC supportano il Plug and Play : quando il calcolatore rileva la presenza di una nuova periferica, è in grado di riconoscere il driver appropriato per essa, installarlo e configurarlo.

La gestione dei file Il file system è la componente del sistema operativo che si occupa della gestione delle memorie di massa, al cui interno i dati sono organizzati in file. In un supporto di memoria viene creata una cartella denominata radice, che può contenere file e/o cartelle che a loro volta possono contenere file e/o cartelle dando origine a una struttura ad albero. Ogni file/cartella sono identificati da un nome e un pathname ,la descrizione del percorso più breve per raggiungerli. Molti file system supportano la possibilità di sovrapporre alla struttura ad albero dei riferimenti (link) che consentono di simulare la presenza di un’altra cartella o di un file ubicati in realtà altrove. Per ogni file/cartella, il file system memorizza e gestisce: formato dimensione data e ora di creazione

CAPITOLO TRE: LA RAPPRESENTAZIONE DEI DATI PER LE SCIENZE UMANE

LA CODIFICA DELL’INFORMAZIONE

I supporti fisici di cui dispongono, le memorie centrali e di massa, sono costituiti da grandi collezioni di dispositivi bistabili, cioè in grado di rappresentare sequenze di simboli di un alfabeto ridotto: i bit (cifre binarie 0 e 1). Per ogni tipo di informazione che si voglia trattare con un calcolatore è necessario quindi individuare una codifica che si avvalga esclusivamente di tale alfabeto.

LA RAPPRESENTAZIONE DEI NUMERI La codifica più comune è la notazione decimale posizionale. ● decimale= fa riferimento alla cardinalità dell’alfabeto utilizzato nella codifica, ovvero 10 simboli (numeri da 0 a 9). ● posizionale= ogni cifra assume un ruolo diverso in base alla sua posizione. Il numero rappresentato da ciascuna cifra è moltiplicato per una potenza di 10, iniziando con 10^10 per quella più a destra e aumentando l’esponente di un’unità ad ogni spostamento verso sinistra. Si dice quindi che 10 è la base del nostro sistema di rappresentazione numerica posizionale. Con n cifre si possono esprimere 10^ n^ numeri naturali: da 0 a 10^ n^ – 1 (ad esempio, con 4 cifre si possono esprimere 10^4 numeri naturali: da 0 a 9999 perchè 9999 = 10^4 - 1). Il separatore decimale , in Italia la virgola, rappresenta i sottomultipli decimali dell'unità.

Le rappresentazioni non posizionali Sistema di numerazione romano testimonia la possibilità di rappresentare i numeri con notazioni non posizionali. In origine esso costituiva un sistema di numerazione additivo che può essere così descritto: si definisce un insieme di simboli a ciascuno dei quali è assegnato un valore numerico un numero è rappresentato da una sequenza di tali simboli il valore di un numero è dato dalla somma dei valori corrispondenti ai simboli contenuti nella sequenza che lo rappresenta. Un esempio è il sistema di numerazione romano usato nel Medioevo: ● alfabeto è costituito dai simboli I(1), V(5), X(10), L(50), C(100), D(500), M(1000). ● un numero è un simbolo dell'alfabeto. ● I, X, C, M possono essere ripetuti al massimo 3 volte di seguito. ● V, L, D non si possono ripetere. ● se il simbolo ha due barre verticali e una sopra orizzontale, il suo valore viene moltiplicato per 1000.

La rappresentazione posizionale in base non decimale La stessa sequenza di cifre, ma in basi diverse, rappresenta numeri diversi. Se la base non è specificata, è sottointeso che sia la 10. La nostra rappresentazione dei numeri nel linguaggio parlato è fortemente improntata al sistema decimale. 1434 lo leggiamo “millequattrocentotrentaquattro” e non pensiamo che possa essere 1434 in base 8 che si leggerebbe “ottale: uno quattro tre quattro”. Nel sistema esadecimale (base 16) si usa la “A” per indicare il 10, “B”=11, “C”=12 ecc.

La codifica binaria Viene utilizzata per la rappresentazione dei dati all’interno di un calcolatore. Per i numeri, in particolare, si ricorre alla notazione binaria posizionale : le cifre binarie “0” e “1” (bit) sono moltiplicate per le diverse potenze di 2. Con n bit si possono esprimere 2^ n^ numeri naturali: da 0 a 2^ n^ – 1. Con un byte (8bit) si possono esprimere 2^8 (256) numeri naturali. Con un nibble (4bit) si possono esprimere 2^4 (16) numeri naturali. Per la conversione di un naturale da binario a decimale si procede sommando i prodotti ottenuti dalla moltiplicazione di ciascuna cifra binaria per la corrispondente potenza di 2. Esempio: 10010101(base 2)= 1x2^7 + 0x2^6 + 0x2^5 + 1x2^4^ + 0x2^3 + 1x2^2 + 0x2^1 + 1x2^0 = 128 + 0 + 0 + 16 + 0 + 4 + 0 + 1 = 149. All’inverso, la conversione in binario di un naturale espresso in decimale si ottiene con ripetute divisioni intere per

Esempio: 149= 149:2=74 resto 1 74:2=37 resto 0 37:2=18 resto 1 18:2=9 resto 0 9:2=4 resto 1 4:2=2 resto 0 2:2=1 resto 0 1:2=0 resto 1 Bisogna leggere il numero dal basso verso l'alto = 10010101 2

LA TEORIA DELL’INFORMAZIONE La teoria dell'informazione nasce nel 1948 grazie a Claude Shannon e si occupa dello studio sistematico delle basi teoriche dell'informazione e della comunicazione. La quantità di informazione contenuta in un supporto si può misurare poichè è data dalla differenza tra i logaritmi delle probabilità attribuite al verificarsi di un evento valutate prima e dopo la lettura del supporto. Se in base 2, l'unità di misura della quantità di informazione è il bit.

INFORMAZIONE QUANTITATIVA Per la rappresentazione dell’informazione di tipo quantitativo esistono due approcci: ● codifica analogica= individuazione di una grandezza analoga: a ogni incremento/decremento della prima dovrà corrispondere un corrispondente incremento/decremento della seconda.

codifica digitale= introduzione di un alfabeto di simboli e un insieme di regole di codifica. Esempi:

  1. rappresentazione analogica= per rappresentare 15 caramelle, utilizzo 15 sassolini.
  2. rappresentazione digitale= comune notazione decimale posizionale (scrivo “15” per indicare 15 caramelle). L'approccio digitale è più compatto ; la codifica analogica porta meta-informazioni di tipo ordinale e metrico. Il numero di caramelle rappresenta una grandezza discreta , ovvero l’insieme dei possibili valori riconducibili ai numeri naturali. Esiste però un altro tipo di grandezza che è la grandezza continua , ovvero l'insieme dei possibili valori riconducibili ai numeri reali. Essa serve a misurare la temperatura. A ogni variazione di questa grandezza si avrà una variazione della lunghezza della colonnina di mercurio (termometro). I termometri con display rappresentano una codifica digitale. La quantizzazione è la caratteristica intrinseca in una grandezza continua, che deve essere quantizzata: l'intervallo dei suoi valori possibili deve essere suddiviso in un numero finito di intervalli (livelli). Se si vuole rappresentare l'andamento di una grandezza continua bisogna ricorrere al campionamento. Esempio: misurazione della febbre ogni tot ore. La frequenza di campionamento è definita come il numero di campioni acquisiti nell'unità di tempo. La quantizzazione e il campionamento rappresentano l’essenza della codifica digitale. Entrambi provocano un'approssimazione, cioè una perdita di informazione.

Trasmissione dell’informazione digitale Nella codifica digitale, per il riconoscimento e l’eventuale correzione di errori generati dal rumore dell’ambito della trasmissione binaria, si adottano meccanismi di protezione basati sulla ridondanza (si trasmettono più simboli rispetto a quelli necessari per codificare l’informazione.. ● schema di ripetizione= ogni simbolo del messaggio sia trasmesso 2 o più volte. ● schemi basati sul controllo di parità= viene trasmesso un blocco e vengono contati gli “1”. Se questo numero è pari, si trasmette il bit di parità, lo 0; altrimenti l'1.

LA RAPPRESENTAZIONE BINARIA DI INFORMAZIONE NON NUMERICA I codici sono sequenze di simboli per rappresentare oggetti del mondo reale. Esempi: ● studenti dell'università= numero di matricola, codice numerico di lunghezza variabile ● codice fiscale= codice alfanumerico di lunghezza fissa ● partita IVA= codice numerico di lunghezza fissa ecc…

Il testo La rappresentazione di un testo all'interno di un calcolatore è in genere realizzata con codici binari corrispondenti ai singoli caratteri: lettere maiuscole e minuscole, cifre decimali… L’ ASCII è una codifica secondo la quella ogni carattere è rappresentato da una sequenza di 7 bit (2^7 = 128 caratteri). L’ ASCII esteso è un’evoluzione dell’ASCII originario e consente di raddoppiare il numero dei caratteri. L’ EBCDIC è una codifica dei caratteri a 8 bit. L’ unicode è una codifica dei caratteri che prevede la possibilità di impiegare fino a 21 bit.

Esistono i file di puro testo (solo caratteri), e quelli che contengono anche delle meta-informazioni, come ad esempio quelle sulla formattazione. I file con estensione “ .doc ” contengono informazioni che specificano il font (tipo di carattere), l'allineamento dei paragrafi, dimensioni delle pagine ecc. I linguaggi di marcatura invece consentono di inserire annotazioni con caratteristiche sintattiche particolari. Il più noto è HTML che contiene, oltre al puro testo, delle marcature, chiamate tag, ciascuna delle quali è costituita da una sequenza di caratteri tra parentesi angolari (< >). L'utente visualizza una pagina HTML mediante un web browser. L’ ODT e il DOCX sono formati per videoscrittura. Il RTF è un formato di file di testo contenente codici di controllo, riconoscibili dalla presenza del carattere “\”. Il PDF è molto comune per la diffusione di documenti su Internet.

Le immagini Il campionamento e quantizzazione possono essere utilizzati anche per la rappresentazione digitale delle immagini. I dispositivi di acquisizione campionano un’immagine: la suddividono in una bitmap , matrice di pixel , individuando per ciascuno di essi un singolo colore. Se i pixel sono grandi l'immagine risulta sfocata; se sono piccoli invece l’immagine risulta molto simile alla realtà. La quantizzazione serve per la profondità del colore (numero dei bit impiegati per codificare il colore associato a ciascun pixel). In un'immagine monocromatica in bianco e nero si puo pensare di codificare il colore di ciascun pixel con un bit (“0”=nero; “1”=bianco). La rappresentazione dei colori prevede l'individuazione di alcuni colori primari e la combinazione di essi. I modelli di colore che partono da uno sfondo bianco e la cui miscela dei colori primari crea il nero modelli di colore sottrattivi in quanto gli inchiostri colorati sottraggono luminosità al bianco. Invece, i modelli di colore che partono da uno sfondo nero e la cui combinazione dei colori primari crea il bianco si chiamano modelli di colori additivi. Esistono diversi formati dei file contenenti immagini: ● JPEG= ottenere file di dimensioni ridotte, affinché possano essere trasmesse in Internet ● GIF= possibilità di gestire animazioni, sfondi trasparenti etc. I file in formato vettoriale (CAD), invece, rappresentano le immagini come composizioni di primitive geometriche (punti e linee).Attraverso la rasterizzazione delle immagini vettoriali vengono sfruttate al meglio le risoluzioni, ma il file risulta avere dimensioni contenute.

CAPITOLO QUATTRO: DALLE RETI A INTERNET

LE RETI DI CALCOLATORI

Una rete di calcolatori è un’insieme di 2 o più calcolatori connessi tra loro allo scopo di comunicare e condividere dati e risorse. I singoli elementi connessi dalla rete sono detti nodi. Con riferimento alla loro estensione, le reti di calcolatori possono essere classificate in: ● rete personale (PAN)= interconnette un personal computer con dispositivi periferici; ● rete locale (LAN)= interconnette i calcolatori un edificio o in edifici adiacenti; ● rete metropolitana (MAN)= si estende su un’area urbana; ● rete geografica (WAN)= si estende su un’ampia area geografica; ● rete globale (GAN)= si estende a livello globale. L’ Internetworking consiste nella connessione di due nodi appartenenti a due reti diverse, determinando quindi la nascita di un’unica rete estesa quanto la somma delle due reti originarie. Tale meccanismo ha portato alla progressiva costituzione di Internet, una rete di reti di calcolatori estesa a livello globale, considerata la rete per eccellenza. Una rete privata virtuale (WPN) è la simulazione, realizzata attraverso una rete pubblica (Internet), della connessione diretta tra due calcolatori o tra due LAN. Impiega una serie di misure per garantire sulla rete pubblica, e quindi a costi relativamente contenuti, tutte le caratteristiche di sicurezza offerte da una più costosa connessione privata.

La comunicazione Affinchè i calcolatori costituiscano una rete è essenziale che siano in grado di comunicare, cioè di scambiarsi informazioni. Un sistema di comunicazione può essere formulato come segue: ● segnale= è una grandezza fisica il cui valore cambia nel tempo come ad esempio la temperatura corporea. ● messaggio= una sorgente vuole trasferire informazioni a un interlocutore, il destinatario e quindi formula un messaggio, una serie di simboli scelti da un alfabeto che rappresenta le informazioni. La comunicazione si realizza se sorgente e destinatario condividono lo stesso contesto. ● canale di trasmissione= sistema fisico che trasferisce un segnale e alle cui estremità si trovano un trasmettitore e un ricevitore. ● sorgente= invia il messaggio al trasmettitore che ne codifica i simboli mediante la modulazione del segnale. Questo, trasportato dal canale giunge al ricevitore che è in grado di decodificarlo rigenerando la sequenza di simboli che costituisce il messaggio; quest'ultimo, consegnato al destinatario, gli porta il contenuto informativo che la sorgente a inteso comunicagli. È importante sapere che ciascun canale è soggetto alla presenza e agli effetti negativi del rumore , il quale può determinare differenze tra il messaggio inviato dalla sorgente e quello giunto al destinatario. Per ridurre o evitare gli effetti negativi è utile che trasmettitore e ricevitore concordino l’uso di codifica con ridondanza: oltre ai simboli del messaggio, nel segnale si ricorre a simboli aggiuntivi per verificare la corrispondenza tra il messaggio trasmesso e quello ricevuto e, in caso negativo, correggere gli errori.

I mezzi fisici Sono mezzi utilizzati per realizzare la rete e trasmettere segnali binari. Possono essere impiegati:

  1. mezzi guidati= il segnale viaggia su linee fisiche come ad esempio cavi; usano le reti cablate cioè realizzate tramite impianti di cablaggio che impiegano cavi.
  2. mezzi non guidati= il segnale viene irradiato nello spazio (wireless) I mezzi fisici guidati per la trasmissione di segnali elettrici sono: ● doppino telefonico= mezzo fisico guidato per la trasmissione di segnali elettrici. È costituito da 8 fili di rame, ricoperti dal materiale isolante, suddivisi in 4 coppie di fili intrecciati e racchiusi da una guaina isolante esterna. ● cavo coassiale= impiegato anch’esso per trasmettere segnali elettrici è costituito da un corpo centrale di rame, ricoperto da materiale isolante avvolto da fili di rame e racchiuso in una guaina isolante esterna. Può essere: thin(sottile), thick(spesso). ● la fibra ottica= consente la trasmissione di segnali luminosi I mezzi non guidati si suddividono in: ● IRDA= utilizza onde elettromagnetiche infrarosse; ● BLUETOOTH= è una tecnologia basata su onde radio e mette in comunicazione dispositivi diversi; serve per mettere in comunicazione dispositivi entro un raggio di qualche decina di metri. ● WI-FI= è basata su onde radio per la realizzazione di WLAN; ● access point= dispositivo per connettere calcolatori dotati di rete WI-FI e di connetterli a una LAN cablata e ad Internet.

Internetworking Un dispositivo è online (in linea) se è connesso ad una rete ed offline (fuori linea) quando è disconnesso. I due termini si riferiscono alla connessione di un calcolatore o di una rete ad Internet. La connessione ad Internet si realizza mediante un’azienda specializzata nella fornitura di connettività detta Internet service provider (ISP) , fornitore di servizi Internet o, più specificatamente, Internet access provider (IAP), fornitore di accesso a Internet. Questi, di solito dietro un versamento di canone, consente al cliente di collegare (Internetworking) il proprio calcolatore alla rete dell’ISP, che è ben connessa ad Internet e viene adoperata dal cliente quale ponte per raggiungere a sua volta Internet. La connessione verso ISP si realizza con una linea telefonica alla cui estremità sono installati due modem connessi a loro volta a due calcolatori. Un modem funge da interfaccia tra un calcolatore e una linea telefonica e trae il suo nome da due termini che definiscono le sue funzioni principali:

modulazione= il modem riceve influsso di bit e lo codifica sotto forma di segnali elettrici che trasmette lungo la linea telefonica; ● demodulazione= il modem decodifica i segnali elettrici che gli arrivano dalla linea telefonica sotto forma di bit e invia al calcolatore. ● router= collega tra loro due reti e analizza i blocchi di dati (pacchetti) all’interno di una rete, riconosce quelli destinati ad un’altra rete e li instrada verso il router corrispondente. La linea telefonica commutata si trova nella maggior parte delle abitazioni italiane: attraverso un modem analogico si collega un calcolatore ad un ISP mediante la linea telefonica commutata, la cui velocità è ritenuta insoddisfacente. Vi sono diversi modem: ● ISDN= si può attivare una velocità di comunicazione massima di 128 kbps con la telefonia digitale ISDN; ● CDN= è una connessione prestante usata dalle imprese o enti di dimensioni medio-grandi. Linea che garantisce una connessione 24 ore su 24 a fronte di un pagamento di un canone. ● DSL= connessione a banda larga che non disturba il normale traffico telefonico. Anche le compagnie di telefonia mobile operano come ISP per erogare connettività wireless. Il territorio è coperto da una rete di celle(telefonia cellulare) connesse alla rete telefonica fissa, a cui i telefoni cellulari si connettono senza fili cioè via onde radio. La connessione può essere realizzata con: smartphone o PDA , calcolatore collegato a un telefono cellulare che funge da modem cellulare.

DALLE RETI A INTERNET Le reti sono un insieme di: dispositivi informatici connessioni protocolli software utenti. Programmi → permettono agli utenti di mettere in atto le loro strategie di comunicazione. Messaggio → testo scambiato tra due nodi di una rete. La comunicazione sulle moderne reti informatiche è a commutazione di pacchetto → messaggio “spezzettato” in tanti pacchetti → spedizione efficiente e permette di massimizzare l'uso del canale di trasmissione. Protocolli di rete → norme/convenzioni che stabiliscono i formati dei messaggi, regolano l'invio e la ricezione di informazioni. Sono i programmi usati dagli utenti che dovranno rispettare le norme di comunicazione. Non esiste un solo protocollo, ma vari strati, ciascuno dei quali regola le comunicazioni a un certo livello (layer). [standard ISO/OSI → 7 livelli; suite dei protocolli Internet (o TCP/IP) → 4 livelli]. Interazione gerarchica fra livelli → il protocollo lavora sfruttando i servizi messi a sua disposizione dal livello inferiore e fornisce a sua volta servizi ai livelli superiori. ● Intranet= rete locale, usata per la comunicazione interna e l'accesso è ristretto a determinati utenti. ● Extranet= una parte della intranet è accessibile a esterni autorizzati, come clienti e fornitori. Servizi di rete → deposito, reperimento e scambio di informazioni. Esempi: posta elettronica e chat. Un nodo può essere attivo o passivo. Se il nodo fornisce dei servizi è chiamato server ; se il nodo beneficia di questi servizi è chiamato client. I termini client e server si possono riferire, in base al contesto, sia al software che all'hardware, in alcuni casi anche a entrambi contemporaneamente.

Funzioni e utilità delle reti

  1. permettere la comunicazione tra più nodi/utenti
  2. permettere la condivisione di risorse La rete consente l'interoperabilità ovvero cooperazione fra sedi che abbiano calcolatori con sistemi operativi diversi o organizzazione di teleconferenze che evitano tempi e spese di trasferta.

Internet come inviluppo di reti Internet nacque negli anni ‘60 come risultato di una ricerca promossa e finanziata dal Ministero della Difesa degli USA, per questo all'inizio era diffuso solo negli Stati Uniti, in ambienti militari e accademici. Internet rappresenta una rete di reti: un complesso insieme di reti che sono tenute insieme da infrastrutture di interconnessione. Al suo interno si hanno diverse sottoreti dalle strutture più varie, ciascuna delle quali ha un calcolatore, detto gateway , che funge da porta di accesso fra i calcolatori della stessa rete e quelli del resto di Internet. Il collegamento fra gateway di reti diverse è garantito dall’esistenza di sottoreti di interconnessione che permettono di incanalare il traffico dei pacchetti fra sottoreti diverse. Il principale strumento per identificare i nodi di rete è l’ indirizzo : i protocolli di rete stabiliscono che ogni nodo ( host ) sulla rete abbia un proprio indirizzo distinto dagli altri.

L’indirizzamento su Internet è basato sugli indirizzo IP : indirizzi numerici costituiti da 32 cifre binarie (anche se in realtà hanno una rappresentazione binaria) costituita da 4 numeri compresi tra 0 e 255, separati l'uno dall'altro da un punto (es: 193.256.479.10). Garantiscono la corretta circolazione e distribuzione dei pacchetti sulla rete e l'utente di Internet non viene troppo spesso a contatto con essi. La gestione della corrispondenza è a carico del servizio DNS , distribuito sulla rete. Si tratta di una rete di archivi che contengono tabelle di corrispondenza tra indirizzi simbolici e numerici: quando un utente specifica un indirizzo simbolico esso viene interpretato e risolto dal DNS primario legato a quell’utente dalla configurazione di rete; se esso non è in grado di risolvere la corrispondenza, si rivolge alla rete DNS sulla quale si propaga la sua richiesta per ottenere la disambiguazione, secondo una tecnica detta di ricorsione, finché non è identificato il server in grado di fornire la corrispondenza ricercata.

Le chat presentano due fattori principali: sono in tempo reale e spesso la comunicazione avviene tra sconosciuti (in forma anonima o con un nickname). Una chat particolare è Skype , un sistema di comunicazione noto soprattutto per aver diffuso un sistema di comunicazione telefonica peer to peer sfruttando un protocollo VOIP (Voice Over Internet Protocol) che consente di mettere in comunicazione telefonica gratuita utenti che dispongono di questo programma. Internet ha stimolato la nascita di servizi esternalizzati di salvataggio via Internet. Questi servizi permettono salvataggi incrementali; il client non invia ogni volta tutti i propri dati, ma aggiorna il server rispetto alle differenze del precedente salvataggio. Di questo genere di salvataggi ne esistono tre tipologie: ● semplice backup= files e cartelle copiati in remoto; la copia rispecchia sempre lo stato originale; ● archiviazione= mantiene in vita più versioni successive degli stessi dati; ● condivisione= mette in comune con altri i propri materiali, una sorta di disco virtuale condiviso. Il Cloud computing è un servizio di Internet che permette sia l’archiviazione che l'elaborazione dei dati che l'utente opera in remoto. Avere i propri dati nel cloud significa che i salvataggi dei propri documenti avvengono su un server remoto. Il Grid computing , invece, è un servizio che si applica a codici di calcolo distribuito, cioè algoritmi che vengono implementati da programmi che sono eseguiti su varie macchine per ragioni di efficienza.

CAPITOLO CINQUE: IL WORLD WIDE WEB

GLI IPERTESTI

L’ ipertesto è un documento informatizzato costituito da porzioni di testo collegate tra loro da nessi logici tramite collegamenti che consentono al lettore il passaggio da un blocco di testo all’altro. Il documento assume di conseguenza una struttura reticolare su cui il lettore può organizzare la sua lettura passando di blocco in blocco attuando una navigazione non lineare. L’ipertesto è la struttura di molti sistemi software e anche il web è ipertestuale. L’ipertesto: è un testo digitale; ● è composto da testi digitali, i cosiddetti nodi; ● le parti o testi sono in relazione tramite connessioni digitali chiamate collegamenti o link in una struttura reticolare; ● la struttura dell’ipertesto determina il modo in cui lo si può usare: la navigazione. ● la struttura dell’ipertesto è legata agli autori che hanno scelto e collegato i testi fra di loro. Dunque, la struttura di un ipertesto è garantita dal collegamento tra nodi. Le strutture più comuni che un ipertesto assume sono: lineare, circolare, a stella, gerarchica e a grafo completo.

I nodi sono le unità minimali di informazione, blocchi di testo dotati di autonomia e completezza. I link sono connessioni tra parti del documento che sono logicamente correlate. Classificazione dei collegamenti all'interno di un ipertesto:

  1. collegamenti interni o esterni al nodo= nei primi i link puntano ad una porzione di testo di un certo blocco ad un’altra nello stesso blocco, nei secondi i link trasportano il lettore in un blocco distinto di testo.
  2. collegamenti che puntano a nodi all'interno dello stesso sito e collegamenti che puntano ad altri siti
  3. collegamenti diversi a seconda del tipo di interattività= a. link di navigazione= consente lo spostamento da una pagina all’altra; b. link di attivazione= elabora un programma che genera una transizione dinamica da uno stato all'altro dell’ipertesto;
  4. collegamenti testuali (esperienza unica) o collegamenti procedurali (esperienza ripetitiva)= i primi hanno sede nel testo vero e proprio, i secondi hanno schede nella cornice ipertestuale.
  5. collegamenti in base alla loro funzione= a. associativi: nodo che ha stretta affinità con la lessia in cui ha sede il nodo di partenza del collegamento b. strutturale: indirizza a una sezione dell'ipertesto “Chi siamo”, “Prodotti”, “Eventi” ecc. c. sitografico: compare in elenchi che puntano a siti esterni che hanno affinità con quello che ospita il link.

La multimedialità Un documento multimediale è come un’opera nella quale c’è compresenza di una molteplicità di mezzi di comunicazione diversi come testo, grafica, animazione e suono. La multimedialità definisce i linguaggi per veicolare i contenuti del documento, mentre la ipertestualità definisce la struttura del documento.

Siccome l’opera multimediale può essere fruita oltre che con la vista anche dall’udito possiamo aggiungere il requisito di multisensorialità. Quindi è una forma di comunicazione che integra tecniche e modalità espressive diverse. La multimedialità può essere: ● debole= gruppo di persone che dialogano e guardano immagini. Pluralità di mezzi e linguaggi. Definita debole in quanto è ottenuta per giustapposizione di mezzi e linguaggi, non per integrazione (es lezione) ● intrinseca= ha come esempio i fumetti; infatti è proprio nella natura e nel nome stesso dei fumetti che si coglie la multimedialità: compresenza di immagini e di testi posti all’interno dei fumetti; ● additiva= film muti con sottotitoli ● nativa= ad esempio nel cinema sonoro la multimedialità è presente nel momento in cui le immagini scorrono accompagnate dalla colonna sonora e dal parlato degli attori ● ristretta= coesistenza e convergenza nello stesso contesto di più linguaggi e formati digitali. ● interattiva= interazione fra utente e sistema (videogames).

WORLD WIDE WEB

Si definisce ipermedialità la convergenza di ipertestualità e multimedialità ed è caratteristica dell’informatica e della telematica. Un ipermedia è quindi un apparato documentale la cui struttura è ipertestuale e i cui contenuti sono proposti tramite la pluralità di linguaggi che concorrono a trasmettere un significato che è propria della multimedialità. L’applicazione più popolare fra ipertesti e multimedialità è costituita dal World Wide Web (www): ideato da Cailliau e Berners-Lee alla fine degli anni '80, ma attivato nel 1991. È un sistema di informazione e di comunicazione globale di tecnologia web che facilita le comunicazioni via internet fra i ricercatori. Il web è un sistema documentale ipertestuale multimediale distribuito su rete; il World Wide Web è un ipertesto multimediale distribuito su Internet, cioè è uno dei servizi ospitati da Internet. L’ipertesto globale, dal punto di vista strutturale, è formato da un insieme di documenti detti pagine web , ciascuna delle quali può essere collegata alle altre con i collegamenti link. Le pagine sono ospitate da nodi specializzati della rete detti server web che sono dei calcolatori. Un utente del web può sfogliare il documento e navigare nella struttura dei collegamenti usando un apposito programma client detto browser , per esempio Internet Explorer, Chrome e Safari. Il termine sito web determina una serie di pagine che godono di una certa coerenza rispetto a determinati fattori. Le pagine Web riconosco i formati grafici jpg/jpeg, gif, png. Altri formati richiedono l'installazione di altri programmi di visualizzazione, detti plug-in (Flash, QuickTime).

Le caratteristiche delle pagine: ● autorialità= un sito è opera di un solo emittente; ● argomento di comunicazione= un sito tratta di un tema principale; ● strategia argomentativa= l'impostazione della grafica, layout ed esposizione dei contenuti è unica in tutto il sito; fatta eccezione di quando il sito è suddiviso in sezioni; ● destinatario= un sito si rivolge ad un pubblico obiettivo con determinate caratteristiche; ● collocazione fisica= le pagine di un sito sono ospitate da un solo server web; ● collocazione virtuale= le pagine sono collocate in un unico indirizzo web. I siti web hanno anche una versione mobile (per dispositivi con lo schermi di dimensioni ridotte). Il sito web si apre con una pagina iniziale che viene indicata con il nome di home page oppure una pre-home dal contenuto grafico o animato che propone il collegamento alla home page vera e propria. Un sito che propone contemporaneamente una molteplicità di servizi informativi e comunicativi, come previsioni del tempo, accesso a servizi di posta, oroscopo ecc… è detto portale. I portali si distinguono in:

  1. orizzontali (o generalisti)= si rivolgono a un'utenza eterogenea e veicolo informazioni sui temi più disparati ma di solito riguardano l’intrattenimento (Yahoo!).
  2. verticali= utenza e informazioni fanno riferimento a specifici settori merceologici.

A seconda dell'emittente i siti possono essere classificati in: ● aziendali= siti con i quali le aziende si rivolgono ai propri pubblici di riferimento per dare o ricevere informazioni e anche per motivi economici. ● istituzionali= siti con i quali gli enti istituzionali comunicano ad esempio con i cittadini; ● personali= sono i siti di singoli individui che sfruttano il canale web per comunicare (blog). Un sito web può essere inteso come un luogo di negoziazione che può essere lineare , quando propone semplicemente contenuti agli utenti(modalità di presentazione); o circolare quando prevede opportunità di scambio di contenuti con gli utenti e tra gli utenti(modalità di partecipazione).

Le funzioni che può svolgere il sito sono: ● informativa= il sito è orientato a mettere a disposizione dati, notizie e informazioni etc. Centro della comunicazione: referente; ● conativa o persuasiva= il sito è orientato a convincere per condizionare le scelte quindi, il centro della comunicazione è il destinatario. Centro della comunicazione: destinatario; ● emotiva= il sito è inteso come strumento per evidenziare il pvd di chi comunica. Centro della comunicazione: emittente. Un sito non deve per forza ricadere in una delle tre tipologie, ma può svolgere contemporaneamente più funzioni diverse.

Un importante distinzione va fatta tra:

Le marche sono facilmente identificabili nel testo in quanto si tratta di stringhe racchiuse tra parentesi angolari (i caratteri< e >). Esistono due tipi di marche: ● doppie= racchiudono una porzione di testo sulla quale la marca ha un certo effetto (

inizio di paragrafo;

fine paragrafo). ● singole= hanno effetto istantaneo e non hanno la necessità di una marca di chiusura. HTML è una tecnologia informatica facile e questa è stata una delle ragioni del successo web. Siccome HTML è un po’ povero dal punto di vista espressivo sono state proposte altre soluzioni tecnologiche: ● JavaScript= è un minilinguaggio di comandi che sono incorporati nella pagina HTML : ● Java= è un linguaggio di programmazione piuttosto potente che può essere usato indipendentemente dal web; ● Flash= è una tecnologia orientata all’animazione multimediale ampiamente sfruttata per la gestione di immagini; ● XML= che permette di descrivere linguaggi più espressivi dell’ HTML. ● URL= sia lo scheda di identificazione univoca dei contenuti nel web sia la singola stringa che agisce da identificatore univoco di una risorsa web.

Un URL è’ costituito da:

  1. un protocollo o schema;
  2. un hostname= identificatore di un nodo di rete;
  3. una porta= è come un indicatore numerico che permette di distinguere fra più porte di comunicazione;
  4. un pathname= identifica un percorso all’interno del file system del server;
  5. un query= permette di trasmettere a programmi per la generazione di pagine dinamiche informazioni parametriche;
  6. un frammento= è una stringa che specifica un preciso punto della pagina. Poiché URL presenta alcuni limiti, ad esempio tende a generare identificatori che possono rivelarsi ingombranti, si è ricorso a varie soluzioni come : ● aliasing (a livello del server) = viene ideato un alias per poter usare un nome facile che verrà poi sostituito dall’indirizzo vero e proprio; ● refresh (a livello di HTML) = cioè si ricorre alle ridirezioni; le ridirezioni hanno lo svantaggio di indurre un duplice caricamento di pagina: prima viene caricata la pagina che contiene la ridirezione e poi la pagina finale; in alcuni browser ciò genera uno scorretto funzionamento del pulsante “Indietro”. ● URL shorteners= esistono servizi web che permettono di generare URL brevi.

Per ovviare al problema della instabilità degli URL si usano i cosiddetti PURLs. L’iniziativa PURL mette a disposizione dei propri utenti indirizzi persistenti ai quali gli utenti possono legare gli URL delle proprie pagine.

La ricerca nel Web L'utente può entrare nel web secondo diverse modalità:

  1. diretta= digita nella finestra indirizzo del proprio browser l'indirizzo che gli interessa;
  2. indiretta= segue un link presente in un altro sito;
  3. con un motore di ricerca= a. nessun motore di ricerca è in grado di trovare risultato in tutto il Web; b. il motore di ricerca è un servizio del web che a partire da un input costituito dalla richiesta di un utente espressa da un lista di parole chiave restituisce come output una lista di collegamenti(La funzione di un motore di ricerca);

Gli utenti possono migliorare le proprie ricerche ( advanced search= ricerca avanzata) per esempio legando più parole chiave con operatori logici: in questo caso il motore opportunamente attrezzato restituirà risultati coerenti alla ricerca. Inoltre, quando un utente inoltra via Web la propria interrogazione al motore, esso non può esplorare il Web alla ricerca di siti che contengono la parola chiave digitata dall'utente; non esiste neppure un catalogo generale di tutte le pagine disponibili ma il motore esplora una porzione di Web alla ricerca di siti adeguati alla richiesta fatta dall’utente: esiste un archivio di ricerca, che viene aggiornato dal motore di ricerca stesso, il motore dispone anche di un programma indicato con il nome di spider che esplora la rete alla ricerca di pagine, le analizza e ne fa una copia da conservare nell’archivio del motore. La copia archiviata ed ispezionata per verificare se corrisponde ai requisiti specificati dall'utente viene chiamata copia cache. L'attività dello spider è continua, asincrona rispetto alle richieste degli utenti e ciclica: periodicamente rivisita le pagine a lui già note (più frequentemente quelle che cambiano più spesso). Nel proporre i risultati, il motore di ricerca, svolge un’operazione molto importante: il ranking cioè l’ordinamento dei risultati. Quando chi ha scritto la pagina web paga il motore di ricerca per far apparire con più evidenza la sua pagina per certe parole chiave si ha uno sponsored link. Se è sponsorizzato viene specificato.

Un motore di ricerca è costituito da: ● un archivio= dove vengono mantenute copie delle pagine Web a lui note e altre informazioni dedotte dalle pagine stesse; ● un programma di interrogazione dell’archivio= per recuperare le pagine significative, di ordinare i risultati in base a criteri di rilevanza e proporre i risultati sotto forma di pagina web; ● un programma di scansione e indicizzazione= per ricercare nel Web pagine da inserire nell’archivio.

I motori di ricerca generalisti , come Google, Yahoo!, Bing etc. effettuano ricerche puramente testuali e contengono nel proprio testo la parola chiave specificata dall'utente. Non vengono fatte distinzione tra minuscole e maiuscole. Oltre ai motori generalisti esistono motori specializzati che raggruppiamo in 4 categorie:

  1. metamotori= :attivano in parallelo la ricerca su più motori e poi sintetizzano i risultati;
  2. plurimotori o motori paralleli= sono motori di ricerca che fanno ricerche in parallelo su motori generalisti e specialistici;
  3. clusterizzati= cercano di far emergere concetti significativi dall’insieme dei risultati e cercano di individuare sottoinsiemi di pagine;
  4. motori specialistici= sono in grado di operare su domini particolari come immagini, audio, libri etc. Per esempio, Google Books si occupa solo di testi a stampa digitalizzati.

Il Web 2. Riguarda l’evoluzione di siti dinamici nel senso della condivisione delle informazioni tra gli utenti e della interazione degli utenti con i siti che visitano. Nell’ambito del Web 2.0 trovano spazio i social network (reti sociali) cioè tutti quei servizi che permettono alle persone di connettersi fra di loro per mantenere dei rapporti (Facebook, Netlog, Twitter). Per entrare in una rete sociale bisogna costruirsi un profilo personale, una rete di contatti e dialogare con essi, leggere che cosa fanno, condividere informazioni, materiale multimediale. Rientrano nel campo 2.0 le applicazioni di tipo Wiki : Web di cui contenuti sono sviluppati e discussi da una comunità di utenti per la costruzione di sapere online; l’esempio più famoso è WIkipedia sito. Lo scopo di Wiki è quello della costruzione collaborativa di forme di sapere online secondo il principio della saggezza della follia , per cui se anche un utente introduce un'informazione sbagliata in breve la comunità provvede a correggerla. TripAdvisor e Booking sono sistemi per dedurre l'affidabilità e la reputazione di un certo servizio o sito. Ancora più raffinati sono i recommender systems , ovvero programmi che guidano l'utente alla scelta dell'opzione che fa per lui, in base al profilo compilato dall'utente stesso.

CAPITOLO SEI: LA COMPUTAZIONE LINGUISTICA

Ambiguità e struttura L'ambiguità è uno dei fattori che conduce al non‐determinismo ed è presente ad ogni livello della descrizione linguistica. Nel linguaggio naturale, l'ambiguità è su tre livelli:

1. Lessicale= due o poi categorie lessicali (Part-of-Speech), classi grammaticali associate alle singole parole, distinte possono essere associate alla stessa parola (o token). In alcuni casi non basta rimuovere l'ambiguità lessicale per avere accesso a soluzioni strutturali distinte; 2. Sintattica= due o poi strutture sintattiche possono essere assegnate alla frase. È esprimibile in termini di struttura sintagmica, che a sua volta si basa dell'idea di costituente sintattico (in costituente è un'entità potenzialmente composta da due parole); 3. Semantica= si ha quando una parola ha più significati diversi non esprimibile semplicemente in tribunale lessicali o sintattici. Se i linguaggi di programmazione presentassero tutte queste ambiguità, sarebbero incomprensibili per qualsiasi dispositivo elettronico: una variabile infatti deve essere sempre distinguibile da tutte le altre (ambiguità lessicale), altrimenti il suo valore risulterebbe confuso; il computer deve inoltre sapere se una funzione prende come input due o tre argomenti (ambiguità sintattica), altrimenti il risultato varierebbe; infine, una richiesta di accesso ambigua (ambiguità Pm semantica) condurrebbe a calcoli errati.

La descrizione formale della competenza linguistica La competenza linguistica , è quell'insieme di conoscenze che ci permette di dire con sicurezza se una frase è grammaticale o no e, in caso di ambiguità, di assegnare il corretto significato alle distinte interpretazioni possibili. Per definire la competenza linguistica bisogna specificare le primitive ad ogni livello. Possiamo quindi parlare di primitiva elementari almeno nei seguenti domini: ● Fonemico = si esprimono a questo livello le rappresentazioni astratte dei suoni del linguaggio; ad esempio si codificano i fonemi, cioè le più piccole entità acustiche che permettono di discriminare opposizioni significative attraverso tratti distintivi; ● Morfemico = si identificano a questo livello i morfemi, ovvero i più piccoli raggruppamenti di fonemi dotati di significato (ad esempio, la parola "cani" è composta dai morfemi "can‐" radice del nome "cane" ed il morfema "‐i" che esprime il plurale maschile); ● Parole = è il livello a cui si esprimono i gruppi di morfemi significativi che compongono le parole che si possono trovare nel dizionario, cioè i lemmi (anche detti type, ad esempio "cane") o le occorrenze (anche dette tokens, ad esempio "cani"); ● Sintagmatico = si individuano a questo livello i gruppi tipizzati di parole che esprimono i costituenti sintattici e le relazioni di inclusione tra tali costituenti; ● Semantico-tematico/relazionale = si esprimono i concetti di paziente, agente etc. che specificano le relazioni tematiche e/o modificazionali tra costituenti distinti. Lo scopo di una grammatica formale è quello di esplicitare in un modo comprensibile per un computer quelli che sono i simboli e le regole che permettono di identificare correttamente l'insieme di espressioni appartenenti ad una determinata lingua e di assegnare a queste espressioni una struttura che esprime alcune proprietà interessanti.

Un noto esempio di grammatiche formali sono le Grammatiche a Struttura Sintagmatica (PSG), alla base delle PSG vi sono le regole di riscrittura.