Programmazione e linguaggi di programmazione
Come abbiamo già accennato in precedenza, la "macchina"
computer da sola non può fare nulla se non le vengono impartite precise istruzioni.
La creazione del software avviene attraverso la progettazione di appositi algoritmi di
risoluzione che permettono di realizzare una lista di istruzioni da impartire al
computer; tali algoritmi sono funzioni di calcolo matematico che, proprio per la loro
natura, possono essere concepite senza alcun rapporto con gli elaboratori.
Lalgoritmo è la precisa descrizione di tutto quello che deve fare il programma,
passo per passo, prendendo in considerazione tutte le possibilità, in modo che la sua
esecuzione pervenga ad un risultato preciso senza mai presentare situazioni inaspettate o
impreviste.
Da una parte, quindi, la programmazione si basa sul concetto di
algoritmo e della sua rappresentazione, cioè definisce "cosa fare e come
farlo", dallaltra invece, il linguaggio di programmazione risponde al
problema pratico del "come esprimerlo".
Lelaboratore, infatti, comprende soltanto un linguaggio costituito da successioni di
0 ed 1, chiamato linguaggio macchina, direttamente rapportato alle caratteristiche
costruttive dei circuiti logici dellelaboratore stesso.
Tutto ciò rendeva, agli albori della programmazione, lutilizzo di tale linguaggio
alquanto complesso e quasi impossibile, dato lalto dispendio in termini di tempo,
costi e probabilità di errore. Nel corso degli anni si sono evoluti, quindi, linguaggi di
programmazione che tendevano sempre più a sostituire le lunghe sequenze di 0 ed 1 con
parole e numeri in base decimale, più sintetici e facilmente memorizzabili.
Da tali linguaggi, definiti "linguaggi orientati alla macchina" (ad esempio, Assembler),
si è quindi passati ai linguaggi avanzati, relativamente più indipendenti
rispetto al tipo di microprocessore ed a tutti i componenti dellelaboratore, che
permettono di tradurre i vari passi logici del programma in proposizioni, più vicine al
linguaggio umano ma sempre con precise norme ed una complessa sintassi da rispettare.
Sono poi i compilatori a tradurre i linguaggi avanzati in linguaggio macchina, che
rimane in ogni caso lunico linguaggio compreso dallelaboratore, prendendo in
input un programma chiamato sorgente, scritto nel linguaggio avanzato, e fornendo
in output un programma oggetto, eseguibile direttamente dallelaboratore.
Uno dei più diffusi e famosi linguaggi avanzati è il BASIC (Beginners
All-purpose Symbolic Instruction Code, cioè "codice simbolico universale di
istruzione per principianti"), linguaggio universale per risolvere problemi di
diversa natura.
Un altro orientamento nellevoluzione dei linguaggi è quello verso la cosiddetta OOP
(Object Oriented Programming, cioè programmazione ad oggetti), tendente
a creare delle unità indipendenti di codice, blocchi autonomi di istruzioni che
possono essere riutilizzate allinterno dello stesso programma o anche in programmi
diversi.
Questo nuovo settore della programmazione al momento attrae il maggior numero di studi ed
attività, promettendo una rivoluzione nella capacità di costruire programmi per sistemi
complessi.
Attualmente si sta diffondendo notevolmente il linguaggio Java, inventato
dallazienda americana SUN, un linguaggio orientato agli oggetti che consente di
scrivere applicazioni eseguibili su ogni tipo di computer, sfruttando inoltre alcune
caratteristiche del World Wide Web per aggiungere nuove capacità, funzionalità e un più
elevato livello di interattività con Internet.
Un altro moderno linguaggio di programmazione è Visual Basic, le cui principali
caratteristiche sono indicate nello stesso nome.
Il termine "Visual" fa infatti riferimento al metodo utilizzato per creare
linterfaccia grafica utente: anziché scrivere numerose righe di codice per
descrivere laspetto e la posizione degli elementi grafici, è sufficiente
selezionare e trascinare sullo schermo, nel punto desiderato, oggetti già sviluppati. Il
termine "Basic" fa ovviamente riferimento al BASIC, rappresentandone una
evoluzione attraverso centinaia di nuove istruzioni, funzioni e parole chiave.
HTML (HyperText Markup Language), invece, è il linguaggio del Web,
relativamente semplice da apprendere, costituito da una varietà di elementi chiamati
"Tag", che sono utilizzati per gli scopi più vari, dalle definizioni di stili
di carattere e titoli, allinserimento nelle pagine Web di elementi particolari come
immagini, suoni e ambientazioni di realtà virtuale.
I linguaggi di programmazione destinati ad avere nei prossimi anni un
maggior sviluppo sono quelli impiegati nellambito delle ricerche sulla realtà
virtuale e sullintelligenza artificiale.
A proposito di realtà virtuale, si segnala un ulteriore linguaggio utilizzato nel Web: il
VRML (Virtual Reality Modeling Language) che aggiunge una terza dimensione
alla presentazione di informazioni. I file VRML nel Web forniscono scene tridimensionali
in cui il pubblico può navigare da diversi punti di vista, muovendosi in ogni direzione
per perlustrare la scena.
Per quanto riguarda lintelligenza artificiale, le ricerche mirano ad ottenere dei
programmi con capacità di imparare dallesperienza, cioè con capacità di
analizzare, prevedere gli eventi ed imparare da questi, acquisendo una memoria di eventi.
Un esempio potrebbe essere un programma progettato per prevedere guasti nelle reti
informatiche che, memorizzando le caratteristiche dei dati oggetto di analisi, in questo
caso i componenti della rete, e creando profili di comportamento in modo da reagire
alla variazione anomala di tali profili, potrà segnalare e trovare autonomamente le
soluzioni ai problemi che potrebbero verificarsi.