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.
L’algoritmo è 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", dall’altra invece, il linguaggio di programmazione risponde al problema pratico del "come esprimerlo".
L’elaboratore, infatti, comprende soltanto un linguaggio costituito da successioni di 0 ed 1, chiamato linguaggio macchina, direttamente rapportato alle caratteristiche costruttive dei circuiti logici dell’elaboratore stesso.
Tutto ciò rendeva, agli albori della programmazione, l’utilizzo di tale linguaggio alquanto complesso e quasi impossibile, dato l’alto 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 dell’elaboratore, 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 l’unico linguaggio compreso dall’elaboratore, prendendo in input un programma chiamato sorgente, scritto nel linguaggio avanzato, e fornendo in output un programma oggetto, eseguibile direttamente dall’elaboratore.
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 nell’evoluzione 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 all’interno 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 dall’azienda 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 l’interfaccia grafica utente: anziché scrivere numerose righe di codice per descrivere l’aspetto 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, all’inserimento 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 nell’ambito delle ricerche sulla realtà virtuale e sull’intelligenza 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 l’intelligenza artificiale, le ricerche mirano ad ottenere dei programmi con capacità di imparare dall’esperienza, 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.

pagina precedente torna all'indice pagina successiva