Showing posts with label IBM 360. Show all posts
Showing posts with label IBM 360. Show all posts

Tuesday, December 12, 2017

Despre NEAC 1240


În vara lui 1967, a fost la București o mare expoziție internațională, acolo aproape de fosta Casă a Scânteii, unde se făceau și se fac și acum de regulă asemenea expoziții. La această expoziție, firma Nippon Electric Company - NEC din Tokyo, a venit cu un calculator electronic pe tranzistori, care lucra cu bandă perforată cu opt canale. Nu știu a cui a fost ideia, deși bănuesc că numai domnul Manea Mănescu pute gândi la așa ceva, dar până la urmă când s-a închis acea expoziție, calculatorul a fost adus la noi la Laboratoarele  Catedrei de Cibernetică Economică - LCCE și instalat chiar în biroul unde lucram  eu cu Rodica, Lizeta, Catona și Diaconescu, pentru că acel calculator nu avea nevoie de climatizare.  La instalare au venit doi tehnicieni de-ai firmei NEC,  care ne-au dat și documentație și câteva noțiuni de programare la acel  calculator, care se chema NEAC-1240. Unu dintre cei doi japonezi se chema Sasajima și era pentru noi un tip foarte interesant. Cercetătorul Paiu Octavian îl necăjea mereu pe Sasajima cu „Mister Sasajima, nu eși cuminte”, ceeace-l distra tare mult pe japonez, după ce i s-a explicat ce-nseamnă asta.
După ce a fost instalat acel calculator, care era mult mai mic și mult mai  stabil decât CIFA noastră, am trecut mai toți să facem programare pe el. Eu, care lucram deja pe CIFA și pentru domnul profesor Ludovic Tovissi, care mă rugase să-i fac un program pentru controlul calității producței, am trecut acest program pe NEAC-1240 și încet încet   l-am dus până la final. La acest calculator, programele se puteau face și-n cod mașină, în cod scris în octal ca la CIFA, dar avea și un limbaj simbolic numit COPCODER, care făcea mai ușoară munca de elaborare a unui program. În memoria calculatorului era deja un program special numit compilator, care transforma programul scris în COPCODER, în limbaj mașină. Programul scris în COPCODER se chema program sursă, iar cel care rezulta după compilare, se chema program obiect. Odată obținut programul obiect, se putea trece imediat la  executarea programului, pentru rezolvarea unei anumite probleme. Dacă nu se dorea trecerea imediată la executarea programului, se putea scoate programul obiect pe bandă de hârtie perforată, pentru una sau mai multe execuții ulterioare, folosinduse de regulă date diferite. În această  perioadă, un domn  Zamfirescu, cu care ne-am întâlnit prima dată acolo la IFA, când am luat primul contact și cu CIFA-102, a mai trecut pe la noi pe la LCCE. El  a încercat și până la urmă a și reușit, să ne convingă să folosim un program, care rezolva pe NEAC, probleme de transporturi. Acest program a mers la noi la LCCE, prima dată, pentru calculatorul  NEAC-1240. Îmi aduc aminte că și unu din studenții ASE care se chema Vlad, a folosit acest program în proiectul sau de diplomă, pentru niște probleme de transport de la locul lui de muncă din Mizil.  Domnu Vlad, era student la fără frecvență la Facultatea  de Calcul Economic și Cibernetică Economică de la noi.  Asta ce știu eu, dar este posibil  ca și alți studenți asă fi  folosit acest program, care era foarte sigur și ușor de folosit.

Când am fost la firma NEC din Tokio, ni s-a prezentat tipuri mai complexe de configurații de calculatoare ale firmei NEC, similare cu calculatorul IBM-370, care a funcționat ceva mai târziu și  la LCCE, dar cu periferice  mult mai bogate. Intențiile firmei NEC au fost de a contracta cu România, livrarea de asemenea configurații, dar n-au reușit,  că am reușit noi să ne păcălim cu calculatorul FELIX C256, copie fidelă a calculatorului franțuzesc IRIS, pe  care francezii tocmai îl abandonaseră. Francezii au intuit dorința noastră fierbinte de a fi producători de calculatoare electronice și au decis să ne ajute.
(12 decembrie 2017)

Wednesday, November 8, 2017

Istoria românească a limbajelor de asamblare


Dacă am afirmat că sunt o arheologie în ale programării mă bazez pe faptul că a scris oarece programe în ASSEMBLER pentru calculatorul IBM 360, în ASSIRIS pentru calculatorul FELIX C-256 și în ASM căci așa s-a numit anonimul, nebotezatul limbaj al PC-urilor IBM-compatibile. Uitam să scriu, dar am programat în anul al III-lea de studenție în perioadas de practică de vară și în COPCODER, limbajul calculatorului NEAC 1240.
Cine programează într-un limbaj de asamblare numai prima dată este greu. După aceea, dacă trece la altul și la altul, învață prin comparație, dar trebuie să rețină diferențele, nu altceva.
Cine vrea să înțeleagă evoluția calculatoarelor electronice trebuie să-și asume să intre în detalii tehnice extrem de dure, căci altfel totul este o construcție fără fundație, dar cu 100 de etaje, care se va nărui sub propria-i greutate.
Până găsesc eu detaliile pe care le-am folosit cândva dar pe care le-am uitat despre limbajul cod mașină al calcilatorului CIFA 101 Economist, voi scrie despre limbajul ASSEMBLER al calculatorului IBM 360 unde îmi aduc bine aminte niște chestii dar există și o literatură bogată, căci imoo care nu uită și nici nu pierd, știu să-și conserve trecutul cu sfințenie.
Se știe că limbajului de asamblare care are sub 256 de instrucțiuni i se structurează codul asociat fiecărei operații pe un byte, ceea ce duce la ideia că acele coduri se reprezintă în hexazecimal ca având valorile de la 00 până la FF.
Există moduri de adresare din care enumăr:
- modul de adresare cu operanzi în registri RR;
- modul de adresare imediat I;
- modul cu adresă calculată a unui operand RX;
- modul de adresare cu ambii operanzi în memorie MM.
Existând numai aceste 4 combinații ne gândim că pentru codificarea lor sunt necesari 2 biți, adică se asociază biții 00 pentru operațiile RR, biții 01 pentru operațiile imediate, biții 10 pentru operațiile registru cu adresă calculată și, respectiv, 11 pentru operațiile cu ambii operanzi definiți ca zone de memorie. Concluzia este simplă: o operație are mai multe coduri din moment ce diferă natura operanzilor. Pentru adunare vor exista mnemonicele:
 A -Add
AH-Add Half  cu codul 4A ceea ce arată că este de tip 10.
AL-Add Logical cu codul 5E ceea ce arată că este de tip 01.
ALR-Add Logical Register  cu codul 1E ceea ce arată că este de tip 01.
AR-Add Register cu codul 1A ceea ce arată că este de tip 01.
Instrucțiunea MVC-MoVe Character are codul D2 ceea ce arată că este de tip 11. Dacă se știe codul operației în hexazecimal se stabilește cu ușurință tipul prin expandarea acestuia în binar. Deci D2 este în binar 1101 0010, primele două poziții din stânga  sunt 11 adică modul MM. E normal să fie așa căci pentru a copia un șir de caractere este necesar să se stie adresa emițătorului și adresa receptorului darși lungimile lor. Emițătorul și receptorul fiind zone de memorie, desigur.
Cine lucrează în ASSEMBLER trebuie să-și gestioneze singur regiștri căci operațiile nu se fac oricum. Rezultatul înmulțirii se obține într-un registru dublu. La împărțire deîmpărțitul se încarcă într-un registru dublu ca restul să se obțină în registrul din dreapta, iar câtul în cel din stânga, registre care concatenate dau registrul dublu. Frumos, nu?
La calculatorul IBM 360 pentru limbajul de asamblare este interesant să se știe cum:
- se fac definirile și inițializările variabilelor;
- se apelează procedurile;
- se gestionează listele de parametri;
- se revine în programul apelator;
- se testează indicatorii de condiție;
- se implementează structra alternativă;
- se implementează structurile repetitive;
- se fac multe alte ghidușii absolut necesare unei programări de top.
Voi dezvolta treptat aceste lucruri, dar este esențial ca programatorul șă aibă capacitatea de a citi cod susrsă în general și cod mașină în special, că nu mai există nimeni în spatele lui care să-l ajute.
Știu că au venit specialiști de la IBM prin 1969 în ASE și i-au învățat pe mulți să programeze în ASSEMBLER, dar când a fost să se dea testul cei care s-au prezentat și au susținut acel test au fost Margareta PENCEA și Cristian POPESCU, estul corifeilor s-au dat loviți pentru a nu-și ciobi din blazon, dar după aceea nu-și mai încăpeau în piele. Numai cu absența aceea li se dădea peste nas.
Când în anul 1969 a fost cumpărat acel calculator IBM 360, firma a adus și documentație completă pentru ASSEMBLER, pe care am văzut-o ți unele volume chiar le aveam în biblioteca de la sala 2314 și acestea erau din câte îmi aminesc setul complet, regăsit de mine pe Internet sub titulatirule și codurile:
System/360 Assembler Language, Cod SR29-0231
System/360 Assembler Language, Cod SR29-0232
System/360 Assembler Language, Cod SR29-0233
System/360 Assembler Language, Cod SR29-0234
System/360 Assembler Language, Cod SR29-0235.
Știu sigur că era așa de clar prezentat totul, simplu, complet și direct că oricine care dorea învăța la un nivel foarte înalt să programeze în ASSEMBLER. Torul era să fie citte lucrurile cu atenție și să fie reținute detalii, mai ales constante legate de poziționări indicatori de condiție și mod efectiv de reaslizare a operațiilor bit cu bit. Limbajul de asamblare este neiertător cu abordările superficiale. De aceea nici nu a prins la noi, drept care literatura și mai ales produsele software realizate folosind ASSEMBLER sunt firave, ca să nu spun puțin semnificative. Am scris ceva proceduri în ASSEMBLER căci nici în COBOL și nici în FORTRAN nu aveam acces la anumiți biți, iar artificiile cu utilizarea de mățti în acele limbaje duceau la niște construcții de-a dreptul vulgare.
Istoria utilizării limbajului ASSEMBLER trebuie să consemneze că în 1971 la studenții de anil al V-lea Gabriel DIACONESCI cercetător din Centrul de Calcul al ASE preda un curs de ASSEMBLER și că în 1975 Gabriel DIACONESCU și Ion LUNGU au publicat în Lito ASE lucrarea Limbajul de programare ASSEMBLER de vreo 220 de pagini cu  bibliografia pur tehnică de mai jos:


În acel an am condus și eu niște seminarii la grupa din care făcea parte Octavian ȘĂRBAN, cel care a terminat Mecanizarea pe poziția de șef de promoție.
Voi fi foarte încântat să știu despre alte preocupări de ASSEMBLER, iar dacă se vor găsi și pagini de imprimantă cu programe de pe acele timpuri, deja s-ar continua ca istorie, modul în care a penetrat ASSEMBLER-ul în activitatea programatorilor de la noi.
M-a ajutat ASSEMBLER-ul și ASSIRIS-ul la apelarea procefurii RANDU din FORTRAN de la IBM în programe de pe FELIX C-256, căci diferențele de definire a constantelor ridicat probleme. Făcând tot felul de calcule am reușit să identific constanta cu care înmulțeam rezultatul final pentru a face corecția ca numerele pseudoaleatoare generate să fie exact aceleași rulate și pe IBM și pe FELIX C-256.
Limbajul MACRO-11 a avut o viașă scurtă căci nici calculatorul I-100 n-a fost produs decât undeva la 12 sau 13 ani.
Limbajul ASSIRIS a fost cu mult mai mult răspândit pentru că:
- numărul de calculatoare în uz la noi a fost de câteva sute de bucăți;
- numărul programatorilor era foarte mare;
- cei curioși să intre mai în măruntaiele programării a crescut vertiginos;
- au apărut cărți din care cea a lui Emil MUNTEANU era celebră;
- limbajul prin nenumăratele sale asperități era incitant;
- diferențierea depanatorilor o făcea cât de bine știau ei ASSIRIS.
M-am ocupat mai mult din rutină de limbajul ASSIRIS, dar am făcut o pasiune din ASM, limbajul de asamblare al microprocesoarelor Intel care au invadat lumea, limbaf care a beneficiat de tot ce se câștigase în teoria limbajelor de asamblare. Am predat așa ceva din 1990 până prin 2005 când s-a produs unirea acestul limbaj cu ingineria porgramării. Cum două săbii nu încap niciodată într-o teacă, m-am dat laoparte căci acolo nu mai aveam ce face, eu aveam drumul meu și făcusem tot ce-am vrut, cât am vrut, cum am vrut, cu cine-am vrut și mai ales am făcut lucrurile pas cu pas și  bine.
Detalii tehnici voi da separat căci nu vreau nici să plictisesc, nici să enervez și nici să se creadă că am memorie de elefant, deși recitind cărți și documentații îmi aduc aminte cu nostalgie de unele vremuri care au trecut ca vântul și ca gândul, iar timpul le-a măturat de nu mai există nici mărturii, nici calculatoare în funcțiune și nici preocupările de a digitiza, salvând  ceea ce încă nu a fost distrus.

(07 noiembrie 2017)

Monday, October 30, 2017

Profesorul Ion Gh. ROȘCA

Despre profesorul Ion Gh. ROȘCA am de scris nu un roman, ci o mie de romane, căci ne cunoșteam din anul universitar 1967 - 1968 pe când locuiam la căminul C1 din Agronomie, eu fiind student în anul al III-lea la Mecanizare cum se spunea secției de Mecanizare și automatizare a calculului economic de la Facultatea de Calcul economic și cibernetică economică din ASE. El era student în anul întâi tot la Mecanizare. Ne-am cunoscut la un telefon public. El a intrat în vorbă cu mine. Pe atunci era un tânăr înalt, slăbuț, cu mustață, cu o pălărie cu borul foarte mare și cu un raglan larg și lung, legat cu cordon în jurul mijlocului. De atunci am rămas într-o excelentă relație de colegialitate, până în 29 octombrie 2011.
Ion Gh. ROȘCA a terminat facultatea șef de promoție în anul 1972.
Ion Gh. ROȘCA a devenit asistent universitar stagiar în toamna anului 1972.
Ion Gh. ROȘCA a fost promovat prin concurs lector universitar în anul 1979.
Ion Gh. ROȘCA a devenit conferențiar universitar în anul 1990.
Ion Gh. ROȘCA a ocupat prin concurs funcția de profesor universitar în 1994.
Ion Gh. ROȘCA a coordonat doctorate începând cu anul ..............
Ion Gh. ROȘCA a fost primul șef al Catedrei de Informatică Economică începând cu anul 1990.
Ion Gh. ROȘCA a ocupat funcția de rector al ASE în intervalul 2004 -2012.
Ion Gh. ROȘCA a primit premiul Academiei RSR pentru cartea Informatica în 1987.
Ion Gh. ROȘCA a primit premiul Academiei Române Petru S. AURELIAN în 2006.
Profesorul Ion Gh. ROȘCA este coautor a numeroase articole și cărți. Dintre cărți enumăr:

  • Ion Gh. ROȘCA (coordonator), Constantin APOSTOL, Bogdan GHILIC-MICU, V. ROȘCA - Prelucrarea fişierelor în PASCAL, Editura Tehnică, Bucureşti, 1994, 228 pag.
  • Ion Gh. ROȘCA (coordonator), Constantin APOSTOL, Bogdan GHILIC-MICU, V. ROȘCA,, Adriana IONESCU, Ileana VREJBA - COBOL complet pentru calculatoare profesionale, Editura ALL, Bucureşti, 1994, 343 pag.
  • Ion Gh. ROȘCA, Constantin APOSTOL (coordonatori), Bogdan GHILIC-MICU, V. TEODOR, Manole VELICANU – Tehnica programării COBOL pentru calculatoare IBM PC, Editura ALL, Bucureşti, 1992, 315 pag.
  • Ion Gh. ROȘCA, Ion LUNGU, Nely MUȘAT. – Baze de date relaţionale. Utilizarea limbajului SQL PLUS, Editura ALL, Bucureşti,, 1992, 179 pag.
  • Ion Gh. ROȘCA, Gheorghe DODESCU ş.a. – Sistemele de operare MIX şi programarea în limbajul MACRO, volumul II, Editura, Tehnică, Bucureşti, 1991, 367 pag.
  • Ion Gh. ROȘCA, Gheorghe DODESCU ş.a. – Informatica, Editura Ştiinţifică şi Enciclopedică, Bucureşti, 1987, 602 pag. 
Mai sunt multe, chiar foarte multe de scris, dar voi încheia cu ceea ce mi se pare mie extraordinar, adică despre grupul de lucru format din tinerii din acele vremuri de demult Valer ROȘCA, Ion Gh. ROȘCA, Constantin APOSTOL și Ion IVAN, adică subsemnatul, care munceam din greu la disciplina de Limbaje de programare și care ne zbuciumam să scriem cărți precum:

  • Valer ROSCA, Constantin APOSTOL, Ion IVAN, Ion Gh. ROSCA - Limbaje de programare. Limbajul de programare ASSIRIS, Lito ASE, Bucuresti, 1977, 516 pg.
  • Valer ROSCA, Constantin APOSTOL, Ion IVAN, Ion Gh. ROSCA - Memorator pentru limbajul de programare ASSIRIS, Lito ASE, Bucuresti, 1977, 167 pg.
  • Valer ROSCA, Constantin APOSTOL, Ion IVAN, Ion Gh. ROSCA - Limbaje de programare - Limbajul FORTRAN si FORTRAN conversational, LITO ASE, Bucuresti, 1980, 224 pg.
  • Valer ROSCA, Constantin APOSTOL, Ion Gh. ROSCA, Pavel NASTASE, Ion IVAN - Indrumar pentru elaborarea proiectelor la disciplina Limbaje de programare a calculatoarelor electronice, LITO ASE, Bucuresti, 1982, 138 pg.
  • Valer ROSCA,Constantin APOSTOL, Ion IVAN, Sergiu COMAN, Ion Gh. ROSCA - LIMBAJE DE PROGRAMARE, metoda programatorului sef. Studiu de caz, Editura ASE, Bucuresti, 1979, 115 pg

A mai fost un moment pe care nu vreau să-l ratez: ondeva la mijlocul anilor '80 la o sesiune de examen s-a produs un fenomen neașteptat în sensul că au promovat la disciplina Limbaje de programare sub 25% dintre studenții. Cursuri susțineau la acea disciplină lectorii doctori Valer ROSCA, Constantin APOSTOL, Ion IVAN, Ion Gh. ROSCA. Am fost chemați la un prorector împreună cu decanul, șeful de catedră și secretarul de partid. După ce ne-a porcăit cum a știut el mai bine, respectivul a comandat un panou pe care erau numele noastre, ale celor patru, procentele de promovabilitate în dreptul fiecăruia și o serie de întrebări dure adresate nouă. Efectul a fost pe dos, căci colegii cu care ne întâlneam ne felicitau pentru curajul de a arăta adevărata stare a ceea ce se întâmpla într-un învățământ superior politizat la maximum. Numai intervenția marelui profesor Alexandru GHEORGHIU la recotor a făcut să dispară acel panou mârșav. Peste ani, prin 2011 respectivul a primit din mâna lui Ion Gh. ROȘCA o importantă distincție. Atunci i-am zis colegului meu că victima își premiază călăul. 
Au mai fost și alte momente, dar deocamdată, atât.




(30 octombrie 2017)

Wednesday, October 11, 2017

Operatori calculator

În intervalul 1968 -1992 am avut șansa să colaborez cu operatorii care lucrau cu calculatoarele din dotarea Centrului de calcul alm ASE.
Operatorii de la calculatorul CIFA 101 aveau o misiune cu mult mai complicată decât ne imaginăm azi când calculatorul înseamnă în primul rând o tastatură, câteva butoane, câteva periferice și multe, foarte multe cunoștințe de operare, de programare și de management resurse, pentru că a șterge sau a modifica  fișiere fără ca aceste operație să fie ansolut necesare, deja înseamnă risipă de resurse și costuri nejustificate pentru a reconstitui ceea ce s-a pierdut. Ei trebuiau să știe să utilizeze nenumăratele butoane, comutatoare și dispozitive care erau ale calculatorului. În plus, trebuiau să știe să perforeze banda cu program și cu date, să fixeze hârtia în imprimată și să ruleze programul. Cât timp am stat în fața acelui calculator am murmărit măiestria operatorului și m-am minunat cât de mult știa să interpreteze tot ce se întâmpla cu calculatorul care emitea mesaje sonore dar și semnale luminoase. Miulte dintre comenzi se dădeau prin taste, butoane și prin comutatori.
Operatorii de la calculatorul NEAC asemeni celor de la calculatorul CIFA 101 trebuiau să știe cum se pornește și cum se oprește calculatorul, cum se perforează banda, cum se fac conexiunile cu perifericele și cum să folosească nenumăratele comutatoare care se găseau pe panoul cu semnale luminoase. M-au impresionat nenumăratele cutiuțe în care aceștia păstrau suluri de bandă perforată cu diferite programe și date și cum le manipulau atunci când doreau să obțină rezultate la anumite probleme ale beneficiarilor. Am văzut că ei mai făceau uneori și corecții pe foile de cod date de programatori, căci uneori zero era confundat cu litera o datorită faptului că programatorii uitau să-l taie pe zero, ∅.
Operatorii de la calculatorul IBM 360 erau cei ce trebuiau să stea în săli cu temperaturi scăzute pentru a protejea echipamentele. Ei știau să gestioneze mesajele consolei introducând propriile mesaje care însemnau decizii de a continua anumite faze de prelucrare ale job-urilor. Trebuiau să schimbe unitățile de bandă și de discuri, să încarce magazia cu cartele perforate și să gestioneze imprimanta, căci fiecărui pachet de cartele îi corespundeau pagini de la imprimantă mai puține sau mai multe și uneori prea multe, dacă programul intra în ciclare infinită cu imprimare pe măsură, caz în care operatorul trebuia să întrerupă brutal execuția.
Operatorii de la calculatorul FELIX C-256 făcea cam aceleași lucruri ca la calculatorul IBM 360, căci erau din aceleași generații.
Operatorii de la calculatorul I-100 erau ceva mai relaxați și orice programator ceva mai interesat de cum stau lucrurile cu lucrul pe acest calculator învăța repede să se descurce în fața acestuia mai ales că față de calculatoarele din generația de dinainte apăruseră foarte multe simplificări și programatorii deja aveau posibilitatea să-și introducă programele de la tastatură și să beneficieze de interfețe deja cu mult mai prietenoase, dialogul om-calculator nemaifăcându-se obligatoriu prin intermediul cartelelor de comandă.
Operatorii de calculatoare erau majoritatea tineri plini de elan și care știau meserie și aveau o putere de concentrare foarte bună, care le permitea să lucreze eficient. În fircare moment ei trebuiau să ia decizii legate de bunul mers al fluxurilor de prelucrare, căci nu întotdeauna programele care se rulau ofereau rezultate vesele sau parcurgeau toate etapele cap-coadă, ci se închieau cu erori fatale sau continuau tipărirea la nesfârșit a unor imagini de memorie dacă era dat parametrul DUMP.
Operatorii de la calculatoarele personale din laboratoare deja aveau o muncă mult mai simplificată, exact cu au acum persoanele care-și gestionează resursele la laptop sau la calculatoarele personale proprii. Când acestea nu sunt legate în rețea operarea înseamnă printre altele și actualizarea sistemului de operare, încărcarea de programe, încărcarea mediilor de programare, încărcarea de instrumente, lansarea în execuție a programelor, a mediilor de programare, a instrumentelor, conectarea de echipamente terminale, dar mai ales gestiunea de fișiere, dintre care operația de ștergere trebuie activată cu mare, foarte mare atenție. Operarea pe aceste calculatoare înseamnă și asigurarea elementelor de securitate, dar și a elementelor de finețe de operare, mai ales atunci când se lucrează cu partiții sau se fac configurări ceva mai sofisticate. Dacă are loc interacțiunea cu alte calculatoare personale operatorul trebuie să știe cu mult mai multe decât simple manipulări cu componente software, iar dacă se leagă la Internet un calculator personal deja universul se schimbă și resursele pe care operatorul trebuie să le gestioneze sunt cu totul altele.
Istoria arată că de la operatorul extrem de tehnic care trebuia să știe lucruri foarte precise legate de a gestiona un panou de comandă extrem de complex, cu trecerea de la o generație la alta, operatorul a schimbat ponderea activităților, căci sistemele de operare au evoluat așa încât acum orice cetățean într-o lună de studiu și de practivă va învăța să-și folosească echipamentul său de calcul la cote de eficiență foarte ridicate, dacă are un anumit obiectiv profesional specific și probleme concrete de rezolvat folosind produse software deja aflate în uz curent.
Pentru operaorii de calculator am manifestat întotdeauna respect pentru că lucrau în condiții dure, trebuiau să dea dovadă de mare concentrare și pentru a exploata bine calculatorul trebuiau să știe meserie și să aibe viteză de reacție.


(12 octombrie 2017)

Wednesday, October 4, 2017

Cartela perforată

Cartela perforată a făcut istorie în informatica mondială pentru că:
- a dezvoltat creativitatea programatorilor;
- a crescut complexitatea aplicațiilor;
- efectuarea corecțiilor era la nivel de 80 caractere numai;
- a crescut calitatea prelucăriilor fiind sigură;
- manipularea cutiilor de cartele era lejeră;
- procesele de perforare se realizau  simultan;
- verificarea și corectarea cartelelor erau efective;
- stocarea nu necesita decât restricții de umiditate;
- duplicarea cartelelor nu era o problemă;
- sortarea și interclasarea erau operații obișnuite;
- costul procesului era suportabil și domestic;
- generalizarea cartelelor a mers cu mare viteză.
În țara noastră consider că s-a început lucrul cu cartele perforate undeva în jurul anului 1960, dacă se ține seama că:
- lucrarea lui Manea Mănescu unde descrie cartela perforată a apărut în anul 1966;
- tipărirea unei cărți dura cam 2 ani;
- procesele de documentare și elaborare durau între 3 - ani;
- importul de mașini de perforat, sortat și tabulatoare dura și el 2-3 ani.
În anul al II-lea de studenție, 1966-1967 deja la subsolul clădirii ASE din Romană 6 unde acum este editura, se aflau un tabulator, o mașină de perforat cartele și una de sortat, toate de proveniență sovietică, folosite de colegii din promoția mai mare cu un an, pentru că mecanografia se studia în
anul al III-le alsecției de Mecanizare și Automatizare a calculului Economic din ASE.
În anul universitar 1967-1968, în practica de vară efectuată la DJS Argeș toate prelucrările majore se efectuau folosind cartele perforate utilizându-se mașini de perforat electro-mecanice și două tabulatoare de proveniență sovietică, extrem de zgomotoase.
Cartela perforată este făcută dintr-un carton subțire dar foarte rezistent. Este sub formă dreptunghiulară având dimensiunile de 187mm și 83mm, iar colțul din stânga este tăiat. Cartelele se păstrau în cutii în care intrau cam 2000 de cartele. Cartele era divizată în 80 de coloane și 13 linii, iar combinațiile de perforații permiteau punerea în corespondență a unui alfabet definit cu perforații, o perforație pentru câte o cifră, dpuă perforații pentru litere și câte trei perforații pentru caracterele speciale. Nu este greu de anticipat folosind matematica din teoria codurilor cum se face punerea în corespondență. Având în vedere că la începuturi tabulatoarele lucrau numai cu date numerice, evident perforarea se făcea cu o perforație pe coloană.Pentru literele  A - I se perforau linia 12 cu o altă linie de la 0 - 9, pentru literele j - R se perforau linia 11 cu o altă linie de la 0 - 9, iar pentru literele S - Z se perforau linia 10 cu o altă linie de la 0 - 9. Carcaterele speciale erau reprezentate prin 3 perforații, pe liniile 12, 11, 10, respectiv, linia 0-9. Codificarea i se datorează lui Herman Hollerith. Perforațiile erau și ele sub formă dreptunghiulară cu dimensiuni standard. Totul avea la bază mecanisme de mare precizie, căci cartela:
- se așeja într-o magazie de cartele;
- cu un cuțit era transportată pentru perforare;
- perforarea se făcea coloană de coloană;
-după perforare cartela era transportată într-o magazie de depozitare;
- de acolo cartelele erau luate și verificate;
- pachetul de cartele, job-ul,  era dus la calculator.
Delimitarea pachetelor de cartele se realiza cu o cartelă colorată (roz, verde, alvatru) numită cartelă de job, iar sfârșitul job-ului era și el delimitat de o cartelă care avea fie .EOJ fie // EOJ fie /* după cum era definit limbajul de gestionare a job-urilor, JCL - Job Control Language.
Am lucrat cu cartele perforate chiar și în anul universitar 1990-1991, iar venirea masivă a calculatoarelor personale a detronat lucrul cu cartelele perforate, anul 1995 făcându-le să dispară definitiv și să rămână doar o amintire frumoasă în mintea programatorilor. Acum în 2017 tinerii care lucrează în IT&C nici nu știu ce a însemnat cartele perforată și fac ochii mari când aud de ele. În țara noastră se lucra cu cartele perforate în:
- centrele teritoriale de calcul;
- centrele de calcul ale întreprinderilor;
- sistemul informațional statistic;
- în centrele de cercetare unde erau calculatoare IBM sau FELIX;
- peste tot unde problemele necesitau programe mari și fișiere mari.
Fluxul era următorul:
- programatorul își structura cu rigurozitate problema;
- programatorul elabora schema logică;
- programatorul scria multe detalii pe o foaie de hârtie;
- programatorul se apuca să scrie textul sursă pe foaia de programare;
- programatorul mergea cu teancul de foi la dispeceratul de perforare;
- cartelele erau perforate de operator după foile de programare;
- cartelele erau verificate de operatori la o mașină specială;
- dispeceratul îl anunța pe programator să vină să ridice pachetul de cartele și foile de programare;
- programatorul insistent făcea o verificare cartelă-foaie, dacă avea răbdare;
- programatorul ducea pachetul de cartele la dispeceratul calculatorului pentru rulare;
- operatorii luau pachetul și-l rulau;
- dispeceratul îl anunța pe programator că programul a fost rulat;
- programatorul venea și ridica pachetul de cartele și imprimanta;
- programatorul analiza și avea momente de tristețe sau de bucurie citind imprimanta.
Bucuria programatorului era cînd imprimanta îi arăra că a obținut rezultatele corecte și complete. Tot momente de bucurie, dar mai mici erau și acelea când pe imprimantă era mesajul că procesul de compilare a trecut cu succes, dar și atunci când se obțineau rezultate chiar și parțiale. Mai era de lucrat, dar oricum era cu mult mai bine decât în situația în care la rularea curentă s-au obținut cu mult mai multe erori decât la rularea precedentă, lucru deprimant la o adică pentru programator, mai ales dacă era legat de niște termene.
Cartela perforată este cel mai drăguț lucru care mi s-a produs pe toată durata când am lucrat în informatică. Ea avea poezia ei care uneori genera sentimente de bucurie, care alternau cu tristeți profunde datorită tocmai fragilității cartonului din care era făcută.




Pentru ilustrarea dimensiunilor și perforațiilor am utilizat poze din cartea Inițiere în programarea calculatoarelor, apărută la București, în Editura Tehnică în 1967, a lui Donald I. CUTLER, care are  230 pagini.

(05 octombrie 2017)