Questo è tutto ciò
che si pensava prima dello scoccare dell' anno 2000 riguardo al famigerato
"baco del millennio". Tutte queste paure, del bug che sembrava essere un
avvenimento apocalittico, sono state semplicemente esagerate e gonfiate dai
giornalisti. In realtà le tanto attese conseguenze sono state pressoché minime
o inesistenti.Alberto
Realis-Luc
Tra poco arriverà il nuovo
millennio e sarà un grande 454j96e avvenimento per tutti! Purtroppo però moltisaranno alle prese con il problema chiamato
Y2K,un inconveniente legato all'anno 2000.Ma che cos'è lo Y2K? Molti computer
,sin dall'inizio sono stati impostati con un sistema che poteva rappresentare
gli anni utilizzando solo due cifre e non quattro perché lo "spazio" digitale
scarseggiava e la memoria del computer era costosa.
Il risultato di questo
risparmio è dato da una spaventosa ambiguità nella rappresentazione delle date!
Infatti ,come fa un computer a sapere se 00 significa 1900 oppure 2000?Questo
può sembrare un problema semplice sia da risolvere che da eliminare. Ma non è
così ,anche perché molti tecnici studiano questo già da tempo. Possiamo però
fare un esempio per capire meglio di cosa si tratta ! Consideriamo ,per
esempio, una compagnia di assicurazioni che ,periodicamente , deve cercare le
polizze rimaste inattive per almeno cinque anni e cancellarle .Per fare questo
, la compagnia memorizza la data dell'ultima operazione come ULTIMO-ACCESSO
.Quando il programma prende questo valore, aggiunge cinque alle due cifre
dell'anno.
Se il risultato è minore
dell'anno in corso ,cancella il record. Se per esempio ULTIMO-ACCESSO vale 93,
93+5<99, e la polizza è considerata inattiva. Se però ULTIMO-ACCESSO vale 96
si verifica un errore. Infatti, se la codifica è a due cifre, 96+5 diventa 01, che
è minore di 99.Cosi si annullerà erroneamente la polizza. In altre situazioni
,un errore Y2K, potrebbe avere conseguenze fatali .Pensate ad un programma che
calcola il dosaggio di alcuni farmaci , un medico digitando "16-03-00" ,per la
nascita di un bambino, avrebbe seri problemi ;il computer potrebbe scambiarlo
per un paziente centenario e consigliare un dosaggio giusto per un anziano ,ma
mortale per un bambino .
cosa fare per risolverlo!
Molte organizzazioni hanno
semplicemente sostituito i programmi errati con il nuovo software
2000-compatibili.Ma questo non basta !Ci vorrebbe ,infatti ,troppo tempo per sostituire tutti i computer e
soprattutto richiederebbe un grosso dispendio di denaro.
Le aziende stanno cercando
di correggere i programmi e hanno provato ,come prima soluzione , a rimettere
le due cifre mancanti. Questo può sembrare adatto per risolvere il problema ma
anche qui ,qualcosa non va!
Con la ricodifica degli anni
a quattro cifre, il programmatore dovrebbe ridisegnare il tracciato di certe
stampe ,documenti e videate per far posto alle cifre aggiuntive. Così anche le
applicazioni software che si riferiscono alle date espanse dovrebbero essere
modificate .
Se infatti sono state fatte
delle modifiche in modo tale che il computer possa comprendere il linguaggio
usato, spesso però ,se i compilatori (programma che effettua le traduzioni)
sono aggiornati continuamente ,si creano dei problemi soprattutto se la nuova
versione creata non accetta le tecniche di programmazione della versione
precedente. Una soluzione alternativa è quella di insegnare al computer che 00
significa 2000!
I programmatori hanno ideato
una strategia chiamata "windowing" che consiste nel separare gli anni da 00 a
99 in due gruppi rispetto a un numero , detto base (45,per esempio).Gli anni a
due cifre maggiori alla base appartengono al secolo corrente (72 diventa
1972).Gli altri si considerano appartenenti al secolo XXI (15 diventa
2015).Anche il windowing ,però, presenta degli inconvenienti in quanto non è in
grado di usare dati che spaziano su periodi superiori al secolo , come per
esempio contratti d'affitto a lungo termine. Un'altra strategia per Y2K è
quella di ricorrere all'aritmetica di base .Si consideri il calcolo 00-99=-99
;se questa operazione vuole rappresentare il calcolo 2000 -1999, il risultato
-99 è sbagliato! Se invece facciamo
(00+5)-(99+5) vediamo che il risultato ,calcolandolo su due cifre , è
equivalente a 00-99 perché 5-4=1 .Sommando così 5 alle cifre 00 e 99 si possono
ricondurre le date al medesimo secolo ,così il calcolo 2000-1999 risulta
corretto usando solo due cifre. Le date sono però semplici numeri e i giorni
,per esempio, non coincidono; infatti il
1° gennaio del 2000 è un sabato mentre il 1° del 2005 no. Quindi la tecnica di
sommare 5 agli anni non vale per i programmi che distinguono i giorni della
settimana .I programmatori hanno così pensato di moltiplicare gli anni per i
due cicli che controllano i giorni della settimana ;ossia un ciclo di sette
giorni per la settimana e uno di quattro per gli anni bisestili. Moltiplicando
fra loro i cicli, si somma agli anni 28 .Se infatti il 1°gennaio è sabato lo
sarà anche il 1° del 2028 e lo era il 1° del 1972 . Questa viene detta tecnica
di "incapsulamento" che aggiunge 28 agli anni a due cifre prima di effettuare i
calcoli .Nonostante l'incapsulamento possa essere usato per evitare molti
problemi Y2K la tecnica diventa pesante per elaborazioni più complesse .Le tre
tecniche - espansione della data ,windowing e incapsulamento - sono state usate
nel 95% dei casi di modifiche al software esistente per il Y2K .Molte aziende
hanno invece utilizzato una procedura mista perché in possesso di sistemi con
migliaia di programmi. I problemi sono però nascosti ovunque è anche in casa
potremmo avere dei problemi !