Thursday, October 12, 2017

Depanatorii de programe

Depanatorii de programe sunt cei care desoperă cauzele care au condus la erori în:
- textul sursă identificate la compilare;
- în alocarea de resurse identificate în editarea de legături;
- în execuție prin lucrul defectuos cu  operanzi.
Despre erorile de compilare și de editare de legături fiecare programator avea istoria lui și uneori el însuși roșea în fața avalanței de erori făcute din neglijență, dar care îi mâncau mult timp la depanare. Erorile de execuție erau nenumărate, cu nenumărate cauze. de aceea, programatorul trebuia să ia niște măsuri preventive precum:
- introducerea de instrucțiuni pentru tipărirea de rezultate intermediare;
- activarea opțiunii de tipărire a urmei programului;
- introducerea de teste suplimentare înaintea unor expresii unde se făceau împărțiri;
- verivicarea concordanței de tip și de poziție a parametrilor reali și formali;
- și multe altele care defineau însăși arta depanatorului.
Existau algoritmi misterioși de identificare a poziției instrucțiunii buclucașe care a generat eroarea de execuție folosind modulul obiect, conținutul unui anumit registru care conținea adresa de început a programului executabil și o zonă din cuvântul de stare program. Scîzând în baza 16 doi operanzi se alfa deplasarea și eau în hexazecimal, adică instrucțiunea cu pricina urmărind contorul cu adresele relative ale alocării instrucțiunilor. Mergând în detaliu la instrucțiunea cod mașină se știa exact de la ce operație, de la care operand de la care registru. Numai că toate acestea erau pour les connaisseurs cum spunem noi chinezii, căci numai cei ce știau limbajul de asamblare al calculatorului se descurcau în așa grozăvii. Restul priveau spectatori pe margine, ca și acum și o iau pe ghicite.
Cu cât creștea experiența programatorului, cu atât intervenea rutina și riscul de a face erori în scrierea programelor scădea. În plus, a apărut o specializare a programatorilor de FORTRAN, respectiv, de COBOL și depanarea programelor se făcea diferențiat căci programele COBOL rareori foloseau subprograme și matrice, ca să apară erorile cele mai frecvente din programele FORTRAN. Programele COBOL conțineau erori datorate:
- neconcordanțelor dintre cele declarate la crearea de fișiere cu cele de la exploatare;
- construcției expresiilor cu operatori relaționali;
- delimitării paragrafelor care se activau prin PERFORM;
- inițializării incorecte sau neinițializării variabilelor.
Es vorbea de o artă, arta depanării, ceea ce era cam pe aceleași principii ca în medicină în a găsi cauza unei suferințe, ținând seama de probabilitatea de apariție a erorilor pe cauze. Se stabilesc erorile, cauzele și frecvențele de apariție, după care se calculează probabilități. Depanatorii cu experiență fac acest lucrun instinctiv. Dacă au o bună ierarhizare a cauzelor, exact ca medicii care stabilesc diagnostice, în procesul de depanare se vor găsi și cauzele care au generat  anumite erori. La compilare apar erori datorate neglijării ortogonalității operanzilor sau a alegerii de operanzi neadecvat definiți. În COBOL numele variabilelor trebuie să nu depășească 30 de caractere, litere sau cifre și cratimă. Dacă programatorul flosește pentru variabile nume foarte apropiate sau are variabile precum CANT-PLAN și CANTPLAN și CANTPL cu siguranță va folosi variabila CANTPL fără să o fi definit sau CANT-PL în loc de CANT-PLAN, de exemplu.
Depanarea programelor FORTRAN este cu atât mai dificilă cu cât programul este mai lung și mai încâlcit datorită puzderiei de instrucțiuni GO TO puse din abundență din cârpituri de secvențe. Nenumăratele facilități ale limbajului se transformă de cele mai multe ori în capcane și un depanator bun dintr-o primă analiză a textului sursă își dă seama cu ce nivel de programator are în față și va ști cu siguranță dintr-o ierarhizare a erorilor unde să meargă pentru a face depanarea, căci de cele mai multe ori la mesaj sunt indicații clare legate de locul și natura probabilă a erorii. Compilatoarele IBM erau cu mult mai diversificate ca mesaje de eroare și explicațiile nu erau vagi.
Depanatorii de programe au fost dintotdeauna marii artiști ai dezvoltării software. dacă stăpâneau mecanisme numai de ei descoperite în a găsi cauzele celor mai dificile erori de depanat, cu siguranță economiseau timp și erau căutați ca și cu ei erau marii tămăduitori ai centrului de calcul, căci ei știau să vindece miraculos programele, mai ales cele care erau în execuție curentă de ani și ani, nu mai existau textele sursă și programatorii care le realizaseră erau demult plecați de acolo, iar mentenanța era lăsată în dorul lelii.



(12 octombrie 2017)

No comments:

Post a Comment