“Parliamo” coi computer
Dal corrispondente di “Svegliatevi!” in Giappone
“NUOVO SISTEMA PER CONVERSARE COI COMPUTER”, diceva un annuncio in una rivista. Risi fra me cercando di immaginare qualcuno che conversava con una macchina. Significava forse che il computer poteva veramente fare una conversazione? Ma cosa c’era da guadagnare a comunicare con una macchina? Le risposte che ricevetti da un amico esperto nel campo degli elaboratori elettronici furono molto interessanti.
Anzitutto appresi che il tipo di comunicazione a cui si riferiva l’annuncio non è di tipo vocale. Di solito consiste di un servizio ‘interattivo’ (dare istruzioni all’elaboratore e ricevere una risposta immediata) attuato per mezzo di un videoterminale o di una stampante (direttamente collegata all’elaboratore). Come il linguaggio umano serve a comunicare, il “linguaggio” di un elaboratore permette di comunicare con esso al fine di risolvere problemi. Comunicando con l’elaboratore gli si dice cosa fare e si ottiene la risposta su ciò che è stato fatto.
Il mezzo per dare istruzioni all’elaboratore è detto “linguaggio” di programmazione. Per “parlare” con un elaboratore bisogna imparare uno dei molti linguaggi di programmazione.
Linguaggi di programmazione
Secondo il mio amico, l’insieme di istruzioni fornite a un computer perché svolga una specifica attività è detto programma. Un moderno linguaggio di programmazione è un insieme di caratteri e di parole che, idealmente, è simile al linguaggio umano, può dare istruzioni o trasferire dati all’elaboratore.
Benché la storia dei linguaggi di programmazione sia recente — ha una trentina d’anni — esistono già oltre mille linguaggi di programmazione e altri ne vengono creati ogni giorno. Questo a motivo dei numerosi impieghi che possono fare degli elaboratori e degli sviluppi nella tecnologia degli elaboratori.
I nomi dati a questi linguaggi o ne descrivono le caratteristiche, come FORTRAN (FORmula TRANslation), BASIC (Beginners All-purpose Symbolic Instruction Code), COBOL (COmmon Business Oriented Language), o li identificano semplicemente, come PL/1 (Programming Language 1) e APL (A Programming Language). Alcuni, come il FORTRAN, sono creati per l’uso di termini matematici e sono più adatti per calcoli scientifici, mentre il COBOL usa l’inglese commerciale ed è un linguaggio commerciale. Il PL/1, il principale linguaggio usato alla sede centrale della Watch Tower a New York e nella sua filiale giapponese per il loro sistema editoriale, è un linguaggio generale adattabile a quasi tutti i campi.
Come esistono regole di grammatica e di punteggiatura per le lingue dell’uomo, così ciascun linguaggio di programmazione ha un suo insieme di regole o sintassi. E necessario attenervisi se si vuole che la macchina capisca il programma.
Come sa chiunque abbia imparato una lingua straniera, eliminare anche solo una parte necessaria del discorso o pronunciare male una parola può avere effetti disastrosi. Questo avviene anche per quanto riguarda il linguaggio di programmazione. Per illustrare il punto, si pensi al veicolo spaziale Mariner I che la NASA lanciò alcuni anni fa. Un programma FORTRAN per il lancio del veicolo conteneva un errore di programmazione, una lineetta che era stata omessa. Come conseguenza il veicolo, che era costato molti milioni di dollari, non andò in orbita! Quanto costò caro quel solo errore!
Un altro punto che mi fu ribadito riguarda quello che un computer può fare e quello che non può fare. Il computer non ha la capacità di creare, non può produrre qualcosa di nuovo a meno che non vi siano introdotti i componenti necessari. Pertanto, se un programma dicesse all’elaboratore di prendere il FILE 1 (file sta per “archivio”), di addizionarlo al FILE 2, e di stamparlo, ma il file 1 non fosse mai stato introdotto nell’elaboratore, il lavoro non potrebbe procedere, e probabilmente la risposta sarebbe “FILE NOT IN LIB”, per informare che il file non è nella LIBreria, in memoria.
Anche queste risposte sono introdotte nel computer in anticipo. Quindi sia le domande che i mezzi per rispondere, tutte le informazioni date e ricevute nel comunicare con gli elaboratori, sono ideati dall’uomo. Questo mi fa venire in mente il copione di una commedia con tutte le entrate e le uscite, le battute di inizio e le parti scritte per gli attori. Tutto quello che un elaboratore fa dev’essere programmato in anticipo.
A questo proposito venni a conoscenza di un’altra particolarità del linguaggio dei computer. Per quanto si divenga esperti, c’è sempre bisogno di un traduttore per farsi capire dall’elaboratore. Non per colpa dell’uomo, ma a causa delle limitazioni della macchina. Riesce a capire solo le informazioni espresse con le cifre 1 e 0, per cui ci vuole un programma traduttore per mettere in quella forma le istruzioni del programmatore. Quindi ci sono in effetti due copie del programma: quella che viene scritta dal programmatore, detto programma origine, e una copia tradotta, che la macchina può eseguire. L’elaboratore esegue quindi le sue operazioni usando informazioni che può comprendere. Può rispondere all’utente attraverso un videoterminale o una stampante ritraducendo la risposta in caratteri che la persona è in grado di leggere.
La cosa di cui il programmatore si interessa maggiormente è il linguaggio del programma origine. È in questo linguaggio che gli uomini scrivono i programmi, e devono conoscerlo bene per preparare un nuovo programma. I linguaggi di macchina sono inseriti nell’elaboratore e preparati dalla casa costruttrice.
Chi può imparare
Un fattore importante per imparare un linguaggio di programmazione e divenire esperti nell’usarlo è l’interesse per la materia. I programmatori migliori sono quelli che si interessano del campo dell’elaborazione e di quelli relativi.
Un altro requisito spesso citato riguarda l’età. Più giovani si è, meglio è. Questo è il consiglio dato di solito perché più si invecchia più i nostri modi di pensare diventano radicati e più difficile è adattarli.
In passato si pensava che per entrare nel campo della programmazione fosse essenziale una certa preparazione matematica, ma non lo si pensa più, a meno che non si tratti di programmare informazioni di natura matematica. Anzi, alcuni anni fa in una gara si vide che uno dei più bravi programmatori della IBM in Giappone era un laureato in lettere. Per essere un buon programmatore, comunque, è necessario avere una mente che sappia rapidamente mettere le cose in ordine logico con un elevato grado di accuratezza.
Come imparare
Oggi ci sono molti mezzi per imparare i diversi linguaggi di programmazione. Quindi potete imparare molte cose da soli. Anzitutto, i linguaggi sono sempre più simili alla parola orale ed è quindi più facile usarli e impararli. Inoltre, molte società costruttrici di elaboratori hanno manuali che si possono ordinare per imparare i fondamentali linguaggi e tecniche di programmazione. In alcune scuole superiori si tengono corsi per programmatori, e nelle biblioteche ci sono tutti i libri che volete sull’argomento.
Ma ci sono degli svantaggi a imparare completamente da soli. Come nella lingua parlata, c’è sempre la possibilità di prendere abitudini sbagliate che poi è difficile correggere. Inoltre, per diventare esperti è molto utile avere un buon esempio da seguire. Un altro punto da prendere in considerazione è che le case costruttrici di elaboratori aggiornano e adottano continuamente nuove tecniche. Quindi il semplice fatto di imparare un linguaggio di programmazione non garantisce che potrà essere usato così com’è.
Ne vale la pena?
Vale la pena di dedicare tempo a imparare a fare bene un dato lavoro e poi programmare una macchina per fare quel lavoro? I fatti rispondono di sì. È vero che per preparare e scrivere un programma ci vuole tempo. Ma una volta che il programma diventa operativo, l’elaboratore può funzionare molto più velocemente dell’uomo; infatti, alcuni elaboratori possono eseguire oltre 200 milioni di operazioni fondamentali al secondo! Inoltre, un lavoro eseguito con un computer è più accurato che se fosse eseguito da molti uomini diversi. Tutto il tempo che gli uomini risparmiano non dovendo eseguire ripetutamente le stesse operazioni può essere dedicato a lavori più interessanti. Per tale ragione molte società hanno computerizzato il loro lavoro; questo ha aperto la strada ai programmatori di computer.
Vi piacerebbe “parlare” coi computer? Impararne i linguaggi potrebbe essere un’interessante sfida.
[Immagine a pagina 23]
100 gradi centigradi a quanto corrisponde in Fahrenheit?
1101 0100
Cioè a 212 gradi Fahrenheit