Azi am rpimit prin coletărie rapidă cartea referită prin:
Stelian NICULESCU - Inițiere în FORTRAN, Editura Tehnică, București, 1972, 280 pag.
Stelian NICULESCU - Inițiere în FORTRAN, Editura Tehnică, București, 1972, 280 pag.
Această carte a apărut într-un tiraj de 18.100 + 140 exemplare broșate, ceea ce la acea vreme pentru o carte tehnică a unui autor român era un lucru extraordinar. Când am cumpărat cartea atunci, am citit-o, am studiat-o, am aprofundat-o și am folosit-o la seminariile mele de programare a calculatoarelor, căci eram asistent universitar la Secția de Informatică Economică din cadrul Facultății de Calcul Economic și Cibernetică Economică. Am recomandat cartea studenților. Acum, după 54 de ani de la momentul în care am făcut cunoștință cu conținutul acestei cărți constat că este o carte:
- bine structurată,
- pe care nu s-a așezat praful uitării,
- cu elemente de actualitate,
- interesantă pentru cei ce scriu programe în PYTHON,
- utilă pentru a înțelege dinamica programării ca meserie.
Acum, ca și atunci când am deschis cartea, am mers direct la Bibliografie, căci la mine bibliografia spune totul despre:
- carte,
- autor,
- conținuit,
- nivel,
- context,
- utilitate.
Bibliografia cărții include 25 de titluri, dintre care 16 titluri conțin cuvântul cheie FORTRAN. O singură carte este publicată în 1955, celelalte fiind publicate în marea lor majoritate după anul 1965. Să nu uităm că suntem în anul 1972 și România era o țară de după Cortina de Fier, unde circulația cărților din Occident era destul de greoaie, chiar dacă regimul comunist căuta să dezvolte ramuri noi ale industriei și tehnologiei, dar și cercetarea științifică, aliniate la cerințele de top ale economiei mondiale. În bibliografie se află și cartea de FORTRAN a lui Petre DIMO, publicată în Editura Tehnică tot în anul 1972. Ca și acum, atunci la apariția cărții, am apreciat bibliografia că nu conținea documente de partid și nici cuvântări ale lui CEAUȘESCU, așa cum se obișnuia în epocă.
În 1972 eram deja familiarizat cu documentația de la IBM și lucram curent cu biblioteca de subprograme științifice, folosind cartea SSP - Scientific Subroutine Package, a cărei a III-a versiune publicată în 1968 de către International Business Machines Corporation - IBM, referită prin codul H20-0205-3; includea texte sursă ale unor programe FORTRAN:
- fiabile,
- de maximă generalitate,
- auto-documentate,
- cu stil de programare,
- perfecte,
Înseamnă că atunci ca și acum am privit cartea cu ochii unuia care știa ce înseamnă programarea în limbajul FORTRAN, căci scrisesem destul de multe programe în acest limbaj de programare și pentru vârsta și experiența mea, acele programe aveau un nivel de complexitate bunicel și urmăream nu să le optimizez, dar să le îmbunătățesc, cu siguranță.
Primul text sursă de program FORTRAN rulat pe calculatorul FELIX C 256 apare în carte la pagina 93, dar până atunci autorul clarifică multe aspecte legate de:
- convențiile limbajului FORTRAN,
- cartela perforată - pagina 46,
- descrierea algoritmilor,
- foaia de programare - pagina 71,
- schemele logice - pagina 16.
Cartea are 11 capitole echilibrate ca dimensiune, după cum urmează:
- capitolul 01 intitulat Introducere, de la paginile 11 - 14, face o incursiune în evoluția calculatoarelor electronice, care în ziua de azi este mai degrabă o incursiune în arheologia calculatoarelor electronice și a limbajelor de programare, pentru că denumiri precum MARK 1, EDSAC, ALGOL, PL/1, SNOBOL, SIMSCRIPT, GPSS, aparțin unui trecut îndepărtat al istoriei universale a informaticii;
- capitolul 02 intitulat Descrierea algoritmilor cu ajutorul schemelor logice, de la paginile 15 - 43 include acele elemente absolut necesare transpunerii unui algoritm prezentat inițial prin cuvinte și prin formule matematice, folosind scheme logice, construite din blocuri și din arce orientate; tabelul 2.1 descrie cele 8 elemente fundamentale de construire a unei scheme logice; autorul pune accent pe schemele logice în care apar cicluri cu număr cunoscut de pași, dar și pe acele probleme care duc spre număr necunoscut de pași; autorul știe cum să pornească prezentarea problemei, de la simplu la complex, pentru că el este interesat să se ajungă la scrierea de programe corecte și complete FORTRAN pentru a soluționa clase de probleme cu complexitate undeva nu mult peste medie;
- capitolul 03 intitulat Elemente de bază ale limbajului FORTRAN de la paginile 44 - 69 include descrierea alfabetului utilizat, definirea de identificatori, construirea claselor de constante, utilizarea de variabile și construirea de expresii; autorul vine după fiecare enunț cu exemple bine alese și lasă cititorului posibilitatea ca acesta să dezvolte propriile construcții, ceea ce este extrem de important, căci programatorii trebuie să scrie propriile programe; este interesant că autorul folosește descrierea BNF pentru a prezenta reguli riguroase de a realiza construcții precum un identificator - pagina 47,
<identificator> ::= < literă > | <identificator> < literă > | <identificator> < cifră >
mi-a plăcut caracterul dens al acestui capitol, care crează posibilitatea trecerii la screrea de programe proprii, căci munca oricărui programator este aceea de a scrie programe pentru a rezolva probleme noi, pentru care încă nu există programe scrise și rulate pe calculator;
- capitolul 04 intitulat Practica limbajului FORTRAN. Instrucțiuni de intrare/ieșire standard, de la paginile 70 - 96 include acele aspecte absolut necesare programatorului pentru a realiza inițializarea variabilelor din programe cu datele problemelor și de a tipări la imprimantă rezultatele prelucrărilor din program; autorul acordă o mare importanță modului cu se scriu datele de intrare pe foaia de programare, cum arată datele în cartela perforată, pentru că dacă nu sunt respectate reguli stricte, proverbul cu gunoi bagi în program, gunoi iese din program devine o realitate crudă, foarte greu de depășit; exemplele de la paginile 83 - 96 sunt edificatoare;
- capitolul 05 intitulat Practica limbajului FORTRAN. Instrucțiuni de atribuire și de control, de la paginile 97 - 128 include prezentarea instrucțiunilor GO TO, IF, DO, dar și instrucțiunile de declarare a variabilelor DIMENSION, REAL, INTEGER, DOUBLE, COMPLEX, LOGICAL, DATA; este creat contextul ca programatorul să construiască secvențe în care utilizează structurile fundamentale, implementare direct în limbajul FORTRAN; programele tipărite de la 5.1 la 5.13 conțin exemple de utilizare a instrrucțiunilor folosind rezolvări pentru probleme clasice precum proodusul a două matrice, ordonarea elementelor unui șir, determinarea elementului maxim dintr-un șir, ordonarea elementelor unui șir, determinarea numărului de elemente negative, pozitive și nule existente într-un șir, dar și altele; prgramele tipărite probin din listinguri scoase la imprimanta calculatorului, ceea ce dă garanția că autorul și-a testat programele și abordarea problematicii este serioasă;
- capitolul 06 intitulat Proceduri, de la paginile 129 - 153 include tot ceea ce trebuie să știe programatorul pentru a construi subprograme de tip SUBROUTINE și subprograme de tip FUNCTION; se prezintă instrucțiunile COMMON, EQUIVALENCE, BLACK DATA, dar și altele; mie mi-a plăcut cum este introdusă noțiunea de subprogram, folosind calculul integralei unei funcții folosind metoda trapezelor, paginile 132 - 133; pentru realizarea unui subprogram de tip FUNCTION este dat ca exemplu calculul factorialului unui număr, pagina144; autorul alege să arate cum se refolosește o funcție pentru a calcula combinări de n luate câte k; tot aici sunt prezentate funcțiile intrinseci ale limbajului FORTRAN, tabelul 6.2;
- capitolul 07 intitulat FIȘIERE, de la paginile 154 - 166 include noțiuni absolut necesare lucrului cu fișiere în limbajul FORTRAN, numai că în acei ani a solicita să ți se pună un fișier pe bandă magnetică sau pe disc magnetic era o epopee, căci limitările de suport de atunci erau dramatice; numai dacă lucrai la contracte cu beneficiari și volumele de date erau imense, aveai acces la astfel de facilități; erau interesante instrucțiunile de lucru cu fișiere căci arătau că limbajul permite și folosirea de fișiere cu definirea de articole, cu regăsirea de articole și tot așa; în vremurile de demult, am avut un contract, se lucrau cu volume destul de mari de datre, dar pentru a stoca datele pe bandă magnetică am obținut aprobări, iar pentru a folosi acea bandă, trebuia anunțat special montarea ei în unitatea de citire a benzilor magnetice;
- capitolul 08 intitulat Instrucțiuni de intrare/ieșire de la paginile 167 - 189 include descrierea instrucțiunii FORMAT cu descriptorii F, E, G, D, L, T, Z, istrucțiunea READ, instrucțiunea WRITE, instrucțiunile ENCODE, DECODE, NAMELIST; numeroasele exemple și modul practic de prezentare, permit cititorului să-și construiască propriile secvențe de program prin care să citească date și să afișeze rezultate, pentru problemele pe care vrea să le rezolve; se vede experiența de programator a lui Stelian NICULESCU;
- capitolul 09 intitulat Cartele de comandă, de la paginile 190 - 214 include prezentarea cartelelor necesare rulării unui program FORTRAN pe un calculator FELIX C 256, căci în acele vremuri, fiecare programator își alcătuia propriul JOB, delimitat de cartele de comandă care identificau începutul, respectiv, sfârșitul setului de cartele cu care fiecare programator venea la dispecerat pentru a fi rulat pe calculator și pentru a obține rezultate; autorul cărții ia principalele cartele de control, le prezintă parametri și arată concret ce are de făcut programatorul pentru a avea o rulare de succes; aici se vede experiența lui Stelian NICULESCU în a scrie și a rula programe;
- capitolul 10 intitulat Segmentarea programelor, de la paginile 215 - 229 include prezentarea cartelelor de comandă cu care se realizează segmentarea, procedeu extrem de util în cazul programelor de mari dimensiuni, mai ales, când se lucra cu matrice de foarte mari dimensiuni; au fost prezentate comenzile SEG, TREE, SEGMENT, SEGDATA și modul lor de utilizare; exemplul de la paginile 226 - 230 este edificator;
- capitolul 11 intitulat Aplicații, de la paginile 230 -278 include enunțuri, soluții și programe FORTRAN pentru probleme de soluționare a sistemelor liniare de ecuații prin metodele lui GAUSS, GAUSS-SEIDEL și SOUTHWELL, suluții și programe pentru integrarea numerică prin metoda dreptunghiurilor, metoda trapezelor, dar și aplicații din fizică; sunt 10 programe rulate pe calculator căci sunt prezentate listingurile lor; autorul prezintă problema, prezintă formulele utilizate și există o corespondență excelentă între formula matematică și expresia aritmetică inclusă în program; programele au comentarii; între prezentarea algoritmului, schema logică și instrucțiunile din program există o legătură strânsă, căci ceea ce este ca formulă Xi = Xi/Vi în schema logică se află tot așa, iar în program se scrie X(I)=X(I)/V(I); în opinia mea, a fost o muncă uriașă pentru a realiza prezentarea de probleme, pentru a desena scheme logice pentru a fi puse în pagină corect și pentru a scrie texte sursă de calitate; este meritul autorului de a duce la bun sfârșit un astfel de demers.
Când i s-a publicat această carte, Stelian NICULESCU avea 35 de ani. Să ai o capodoperă la 35 de ani este o mare performanță. Spun că această carte este o capodoperă, pentru că dacă în loc de limbajul FORTRAN ar fi prezentat limbajul PYTHON sau oricare alt limbaj și textele sursă ale programelor ar fi scrise în PYTHON sau în oricare alt limbaj de programare și nu în FORTRAN, cartea ar rămâne de mare actualitate și în ziua de azi.
Așa cum Mihail EMINESCU prin poemul Luceafărul a definit un etalon în poezia românească, tot așa cartea Inițiere în FORTRAN a însemnat pentru literatura română de informatică un punct de referință și toți autorii au trebuit să țină seama de acesta în abordările lor. De aceea, literatura română de informatică are un nivel foarte ridicat, pentru că începuturile ei a avut o bază extrem de solidă și filtrele impuse au fost extrem de severe, neputând trece mai departe spre cititor, decât lucruri absolut remarcabile.
L-am inclus pe STELIAN NICULESCU în galeria marilor clasici ai literaturii române de informatică, pentru că lucrarea analizată aici, realizată de el, îl definește ca pe unul dintre marii clasici, alături de Margareta DRĂGHICI, Emil MUNTEANU, Horia GEORGESCU și Octavian BÂSCĂ.
(20 august 2026)
(20 august 2026)















