informatica
informatica disciplina nella quale si affronta lo studio dell’informazione nei suoi principi generali (→ automa; → calcolabilità; → cibernetica; → informazione, teoria dell’) e nei suoi aspetti particolari, legati all’elaborazione automatica e alla trasmissione della informazione (→ hardware, → software), nonché alle sue applicazioni in vari sistemi fisici, economici e biologici (→ intelligenza artificiale, → robotica). In questa disciplina hanno trovato adeguata sistematizzazione concetti sviluppati in altri settori come quelli legati ai principi formali del calcolo (→ algoritmo; → funzione ricorsiva) e alle metodologie per la risoluzione dei problemi tecnici e organizzativi sorti con l’avvento degli elaboratori elettronici (modi di utilizzazione, problemi di codifica e di affidabilità, trasmissione di dati), oltre ai problemi legati alla interazione tra uomo e macchina.
L’informatica, oggi autonoma disciplina di studio, nasce dal convergere di differenti campi disciplinari che, per vie diverse, si sono posti il problema di come automatizzare il calcolo, cioè la manipolazione di simboli attraverso determinate regole, rendendolo eseguibile da una macchina. Dal punto di vista teorico è stato necessario comprendere quali fossero le caratteristiche essenziali di un calcolo e quali requisiti minimi dovesse avere una macchina astratta per poterlo eseguire: in ciò un contributo essenziale è venuto dalle ricerche logiche, tra cui spiccano quelle di A. Turing (→ Turing, macchina di) e J. von Neumann (→ Neumann (von), automa di). Parallelamente, le ricerche in fisica e lo sviluppo dell’elettronica hanno reso possibile realizzare macchine che, pur mantenendo lo schema logico dei primi modelli astratti (→ Neumann (von), architettura di), hanno raggiunto in tempi rapidi capacità, potenza e velocità di calcolo sempre più elevate in spazi fisici sempre più piccoli.
L’informatica teorica, alla cui base si situano i concetti di algoritmo e di informazione, studia, nel modo più generale possibile, come applicare l’informazione ai sistemi di calcolo e di controllo. Ciò necessita di appositi modelli astratti. Per esempio, la teoria degli automi consente di formalizzare in modo rigoroso come un insieme di dati (l’informazione in ingresso) influisca su un risultato (l’informazione in uscita) attraverso un processo di calcolo e fornisce, quindi, un modello molto utile per schematizzare il comportamento dei sistemi artificiali. La teoria della calcolabilità consente di stabilire proprietà e regole degli algoritmi, cioè delle procedure che consentono di calcolare le diverse funzioni. La teoria dei → linguaggi formali studia la formalizzazione della sintassi (insieme di regole che definiscono le frasi appartenenti al linguaggio) e della semantica (insieme di regole per l’interpretazione delle frasi stesse) di un linguaggio inteso come insieme di frasi costruite con alfabeto e regole prefissate. Risulta allora possibile collegare le classi di linguaggi e gli automi usati per generare o per riconoscere le frasi dei linguaggi stessi e si agevola quindi sia la struttura dei linguaggi di programmazione, sia la loro traduzione in → linguaggio macchina; più in generale, si facilita la definizione di linguaggi a livello sempre più elevato che consentono di scrivere programmi complessi (per esempio, per applicazioni nel campo dell’intelligenza artificiale, della gestione di strutture di dati ecc.) con chiarezza e con un ridotto sforzo da parte del programmatore. La teoria dei processi concorrenti studia le proprietà dei formalismi che consentono di simulare i sistemi complessi (per esempio sistemi di elaborazione con più unità operative, reti telefoniche, ma anche organismi biologici). Gli automi cellulari, formati da un elevato numero di automi connessi in modo regolare, sono stati per esempio proposti per studiare il comportamento dei sistemi biologici. I concetti di processore, come unità di elaborazione disponibile, e di processo, come compito da svolgere, possono essere utilizzati per studiare ambienti di calcolo in cui una o più unità di elaborazione devono trattare più richieste di utilizzazione. Si studiano così le tecniche di sincronizzazione e di comunicazione e, in generale, di interazione tra processi e tra processori, ottenendo le cognizioni teoriche necessarie per la progettazione sistematica e strutturata di → sistemi operativi, di elaboratori di grandi e medie dimensioni e di → reti di elaboratori, quali quella costituita da Internet.
Come la matematica e la logica hanno contribuito allo sviluppo dell’informatica, così viceversa l’impetuoso sviluppo dell’informatica ha introdotto nuovi temi di ricerca e problemi, aprendo nuovi settori della matematica stessa: lo sviluppo di → metodi numerici e algoritmi efficienti, il problema della → complessità computazionale, questioni di → codifica, studi sul software matematico ecc.
L’utilizzazione di strumenti informatici ha inoltre indotto fondamentali modificazioni in tutti i settori della scienza e della tecnica, dell’industria, delle attività economiche, sociali, umane e politiche. La potenza di calcolo di un moderno elaboratore, di vari ordini di grandezza superiore a quelli precedentemente disponibili, ha reso infatti possibile la risoluzione di complessi problemi scientifici come quelli, per esempio, che si incontrano in fisica e chimica. L’uso dell’elaboratore in tempo reale (cioè con risposta pressoché immediata) permette, per esempio, in esperimenti di fisica delle particelle elementari, di controllare i rilevamenti e di pilotare gli strumenti che eseguono, in modo automatico, le misure sui dati. In altri casi, la simulazione digitale del comportamento di modelli ha consentito, con grande flessibilità, la simulazione dell’esecuzione di sperimentazioni di grande complessità, sostituendo costosi e non sempre attuabili esperimenti di laboratorio. Infine, in alcuni campi l’elaboratore ha svolto una funzione attiva per poter passare da risultati che consentono di avere prime indicazioni sull’andamento dei fenomeni alla individuazione di nuove proprietà e anche di nuovi concetti: quando la risoluzione di un problema viene affrontata con uno studio su di un elaboratore è possibile indagarne tutti i più minuti dettagli, fare confronti con i risultati sperimentali e interpretarne, più adeguatamente, le varie implicazioni.
Nei settori nei quali non è stato possibile descrivere i problemi con un formalismo matematico, l’informatica ha spesso fornito gli strumenti adatti per descrivere i fenomeni. L’utilizzazione di metodologie informatiche ha reso necessaria la individuazione di nuovi approcci alla risoluzione dei problemi, contribuendo così a modificarne l’impostazione; ne è conseguita una revisione critica delle conoscenze e uno stimolo all’avvio di nuovi studi che hanno reso necessarie nuove analisi di questioni più generali legate ai modi più tradizionali del pensare.