Tuesday, November 7, 2017

Istoria românească a limbajelor cod mașină

Istoria românească a limbajelor cod mașină este extrem de bogată pentru că:
- au fosty construite multe calculatoare electronice înainte de 1965;
- primele calculatoare erau originale și difereau unele de altele;
- calculatoarele cu tuburi și relee lucrau numai în cod mașină;
- ceea ce a pătruns de la alți constructori erau tot la nivelul de cod mașină;
- simțul practic a simplificat multe la designul limbajelor cod mașină.
Trebuie pornit de la ideia că în vremurile de demult se știau multe despre bazele de numerație, dar una era să se știe și cu totul altceva era să se și lucreze efectiv în acele baze de numerație cu ușurința de azi. De aceea superba bază B16 de azi era ocolită în anii '50 căci implementarea era problema din cauza vitezei de prelucrare și a capacității de memorie, ambele extrem de limitate. Calculatorul CIFA 1 avea 50 operații pe secundă și capacitate de memorie de 512 cuvinte a 4 biți fiecare cuvânt, adică 256 bytes de azi, adică 0,25 Kb, ceea ce este dramatic de puțin. Și totuși...
Când se programa în cod mașină trebuia lucrat numai cu numere pentru că:
- se lucra cu operanzi din memorie M și din registre/regiștri R;
- textul programului scris în limbaj natural este T;
- textul programului scris în cod mașină este T';
- operanzii erau stocați în zone de memorie ale căror adrese erau numere;
- operatorii erau puși în corespondență cu numere;
- totul era la nivel de operații elementare;
- operațiile elementare erau de tipul R-M, M-R și R-R;
- scrierea unui program se făcea mai întâi folosind cuvinte din limbajul natura, rezulta texul T;
- scrierea în cod mașină, doar cu cifre se făcea  ca proces de codificare a textului T în T';
- urma perforarea programului pe bandă de hârtie, rularea și obținere rezultate.
Entuziasmul a fost atât de mare încât dificultățile nu păreau dificil de trecut tocmai pentru că trecusem de la a lucra pe mașini mecanice sau electromecanice ce efectuau dor o singură operație, la lucru pe un automat numict calculator electronic care executa operații precum:
- adunări;
- scăderi;
- înmulțiri;
- împărțiri;
- comparații;
- salturi condiționale;
- salturi necondiționale;
- alocare cu inițializare;
- inițializări;
- atribuiri;
- încă altele multe dar nu câte are limbajul de asamblare de la microprocesoarele din ziua de azi care sunt de sub 256 dar nu cu mult sub acest număr.

       *
*           *

Istoria românească a limbajelor cod mașină este o pagină frumoasă, spumoasă, care stârnește nenumărate nostalgii. Mulți se întreabă:
- Cum a fost posibil așa ceva?
Răspunsul este banal, ca orice răspuns la o întrebare grea și anume:
- Iac-așa!
Muți de admirație mergem mai departe...
Voi veni cu detalii pe măsură ce voi găsi materiale despre listele de coduri de la diferitele calculatoare românești care lucrau în cod mașină precizând listele de coduri pentru operații, modurile de alocare de zone de memorie pentru operanzi, codificările pentru registre și restricțiile care nu erau deloc puține referitoare la tipurile de expresii de adresare, țtiut fiind faptul că nici în ziua de azi nu plouă cu operații de tip M-m și comutativitatea tipurilor de operanzi în expresiile de referire a operanzilor nu are gradul de generalitate pe care chiar ni l-am dori noi poeții care am creat Miorița și Balada Meșterului Manole, în ambele fiind vorba de crime și implicit de criminali. Ca și în acele creații folclorice, în programele scrise în cod mașină exista un secret și cheia descifrării rămânea cheie.


(07 noiembrie 2017)

No comments:

Post a Comment