Relazioni fondamentali tra macchine, problemi, informazioni e linguaggi.
Questi quattro elementi formano la base dell’informatica:
Problema → Informazione → Linguaggio → Macchina
La macchina elabora informazioni usando un linguaggio per risolvere problemi.
Problemi (cosa deve essere risolto).
Un problema informatico è una situazione che richiede:
- dati di ingresso (input)
- regole di trasformazione
- risultati attesi (output)
Caratteristiche di un problema computazionale.
- deve essere formalizzabile
- deve essere descrivibile con regole
- deve essere risolvibile con un algoritmo
Esempi:
- ordinare numeri
- calcolare una media
- gestire un magazzino
- simulare un esperimento
Informazioni (rappresentazione del problema).
La macchina non lavora su “concetti”, ma su informazioni codificate.
Quindi il problema deve essere: trasformato in dati.
Processo di rappresentazione.
Problema reale → modello → dati → codifica digitale.
Esempio:
Temperatura → numero → binario → memoria.
Aspetti chiave:
- codifica
- precisione
- formato
- struttura dati
Linguaggi (come descrivo la soluzione).
Il linguaggio serve per descrivere:
- dati
- operazioni
- algoritmi
È il ponte tra problema e macchina.
Tipi di linguaggi.
Linguaggi naturali:
- italiano, inglese
- ambigui → non adatti alla macchina
Linguaggi formali:
- non ambigui
- regole sintattiche precise
Esempi:
- matematica
- logica
- linguaggi di programmazione
Linguaggi di programmazione.
Servono per scrivere algoritmi eseguibili.
Livelli:
Linguaggio macchina:
- binario
- eseguito direttamente dalla CPU
Assembly:
- simbolico
- vicino all’hardware
Linguaggi ad alto livello.
- Python, C, Java
- più vicini al modo umano di descrivere il problema
Traduzione necessaria:
- compilatore
- interprete
Macchine (chi esegue la soluzione).
La macchina di elaborazione è il sistema che:
- legge istruzioni
- elabora dati
- produce risultati
Esempi:
- computer
- microcontrollore
- sistema embedded
- macchina virtuale
Modello teorico: macchina di calcolo.
Modello base: macchina di Von Neumann.
Componenti:
- memoria
- unità di controllo
- ALU
- I/O
Relazione operativa completa.
Flusso completo.
1. Definizione del problema:
serve una soluzione formale
↓
2. Modellizzazione:
il problema viene trasformato in:
- variabili
- regole
- relazioni
↓
3. Algoritmo:
sequenza finita di passi risolutivi
↓
4. Linguaggio:
l’algoritmo viene scritto in un linguaggio formale
↓
5. Traduzione:
compilazione o interpretazione
↓
6. Esecuzione sulla macchina:
la CPU esegue istruzioni su dati codificati
↓
7. Output → soluzione.
Problemi, decidibilità e limiti delle macchine (livello scolastico). Concetti base che spesso compaiono:
- non tutti i problemi sono risolvibili automaticamente
- alcuni sono:
- troppo complessi
- non decidibili
- non trattabili in tempo utile
Esempi:
- problemi NP-difficili
- problemi non decidibili (teoria)
Ruolo dell’informazione nel processo.
L’informazione deve essere:
- codificabile
- memorizzabile
- trasmissibile
- elaborabile
Qualità dei dati → qualità della soluzione.
Schema riassuntivo da memorizzare.
| Elemento | Ruolo |
| Problema | cosa risolvere |
| Informazione | rappresentazione dei dati |
| Linguaggio | descrizione formale |
| Macchina | esecuzione |
In informatica un problema deve essere formalizzato e trasformato in informazione codificata. La soluzione viene descritta con un linguaggio formale o di programmazione e poi eseguita da una macchina di elaborazione. Linguaggi, dati e macchine sono collegati perché la macchina può operare solo su informazioni codificate tramite linguaggi non ambigui.
