Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
Programmazione
Uno degli aspetti che hanno fortemente condizionato la storia dell’informatica è l’evoluzione dei linguaggi
di programmazione,
Generazionale:
prima generazione: rientrano in questa categoria i vari linguaggi macchina proprietari, decisamente
complessi e fortemente legati all’architettura hardware specifica;
seconda generazione: costituiscono una prima astrazione del linguaggio macchina (assembly),
permettendo comunque di migliorare l’attività di sviluppo
terza generazione: rientrano in questa categoria i linguaggi che spostano il focus verso il linguaggio
naturale (english-like), Questi linguaggi vengono definiti anche come linguaggi di alto come java
quarta generazione: in questa categoria troviamo i linguaggi dichiarativi, utilizzato principalmente
nei database relazionali.
Esecuzione:
compilati: sono i linguaggi il cui codice, per essere eseguito viene tradotto nel linguaggio macchina
specifico del calcolatore su cui verrà eseguito.
interpretati: il codice non viene compilato ma viene interpretato a runtime in congiunzione ai dati
di contesto.
compilazione intermedia: in tal caso si ha una situazione ibrida tra le due precedenti.
Paradigma di programmazione:
procedurale: il codice è suddiviso in subroutine (funzioni e/o procedure) che eseguono specifici
compiti, consentendo, solitamente, di sfruttare i pericolosi salti condizionali (aka go-to). La
suddivisione in funzioni (o procedure) è pensata per ridurre la complessità del programma nel suo
complesso;
strutturata: in pratica una programmazione procedurale epurata dei salti condizionali. La possibilità
di realizzare tutto quello che è possibile con i linguaggi procedurali senza l’uso dei pericolosi salti
condizionali è dimostrato nel teorema dei due matematici italiani Böhm-Jacopini: qualsiasi
algoritmo può essere trasformato in un algoritmo equivalente composto soltanto di combinazioni
di sequenze, selezioni e iterazioni (eliminando, quindi, la necessità dei salti condizionati).
orientata agli oggetti (OOP - Object Oriented Programming): in questo caso il fulcro dell’intero
programma è la classe (e la relativa interfaccia) composta da attributi e metodi funzionali. L’istanza
di una classe è definita oggetto, ovvero una entità con uno specifico stato.
dichiarativa: in questo paradigma la programmazione si sviluppa utilizzando elementi caratteristici
della sfera matematica:
programmazione funzionale, si basa sull’utilizzo di funzioni matematiche. Il linguaggio più noto è il
lips, utilizzato fortemente nell’ambito dell’intelligenza artificiale;
programmazione logica, si basa sulla logica del primo ordine sia per rappresentare sia per
elaborare l’informazione, e si scompone in Programmazione logica induttiva e Programmazione
logica abduttiva. Il linguaggio più affermato in tale ambito è il prolog.
Qualsiasi linguaggio si utilizzi, è tradizione che il primo programma sia “Hello World” esattamente come
fatto da Brian Kernighan e Dennis Ritchie nel best-seller “Il Linguaggio C (ISBN 887192200X)”, ereditato da
un precedente lavoro del 1974 di Kernighan dal titolo “Programming in C: A Tutorial”.