Showing posts with label FORTRAN. Show all posts
Showing posts with label FORTRAN. Show all posts

Monday, August 24, 2026

Cartea Inițiere în FORTRAN de Stelian NICULESCU din anul 1972 (II)

Când cumpărăm o carte de programare a calculatoarelor, vrem ca din primele cinci minute să scriem programe, adică din primele fraze ale cărții să primim informațiile necesare scrierii acelui program care:
- citește trei numere,
- evaluează expresia E = A + B - C,
- tipărește rezultatul.
Acum în anul 2026 lucrurile stau destul de simplu pentru că:
- dispunem de laptopul nostru,
- nu avem restricții de utilizare software de bază,
- există Internetul de unde ne putem documenta,
- putem fi asistați de Inteligența Artificială.
În anul 1971 când Stelian NICULESCU a publicat lucrarea referită prin:
Stelian NICULESCU - Inițiere în FORTRAN, Editura Tehnică, București, 1972, 280 pag.
lucrurile nu stăteau deloc așa.
Atunci un calculator electronic IBM 360 sau FELIX C 256 se prezenta sub forma unor dulapuri destul de voluminoase, care erau amplasate într-o sală numită sala calculatorului, unde era destul de frig, pentru că funcționarea calculatorului electronic presupunea o temperatură scăzută, deoarece componentele sale electronice emanau căldură, ceea ce nu era benefic pentru funcționarea calculatorului. Față de situația de acum în care datele se introduc de la tastatura laptopului sau de pe un CD sau de pe un stick de memorie, atunci, exista o tastatură a consolei calculatorului unde operatorii introduceau mesaje scurte și informația de intrare a calculatorului se afla stocată pe cartele perforate. Existau și benzi magnetice și discuri magnetice, dar majoritatea covârșitoare a datelor de intrare erau stocate pe cartele perforate. Cine a făcut programare în anul 1971 știe că:
- primea problema de rezolvat,
- identifica algoritmul de rezolvare,
- construia schema logică,
- scria textul sursă pe foi de programare,
- mergea cu foile la sala de perforare a cartelelor,
- prelua cartelele perforate,
- pregătea jobul pentru rulare,
- mergea cu cartelele la dispeceratul calculatorului,
- lăsa cartelele pentru rulare,
- cartelele erau rulate și se obținea pagini de la imprimantă,
- cartelele și paginile erau preluate de la dispecerat,
- conținutul imprimantei era analizat,
- dacă rezultatele erau complete și corecte procesul se încheia,
- dacă erau erori, programatorul trebuia să le remedieze,
- procesul se relua de la scrierea pe foi de programare a corecțiilor.
Toate acestea explică de ce primul text sursă tipărit în carte se află la pagina 93. Cititorul trebuia familiarizat cu multe concepte prelucrării de date folosind calculatorul electronic. De la problema de rezolvat, până la obținerea de rezultate de la calculator, drumul este lung și plin de tot felul de convenții, pe vare viitorul programator FOTRAN trebuie:
- să le învețe,
- să le accepte,
- să le respecte.
Am admirat la autorul cărții Stelian NICULESCU, atenția la detalii, căci a desena o cartelă perforată cu conținut și a comenta legătura dintre liniile sursă ale programului și conținutul cartelei, aparține unei arte pe care nu mulți o stăpânesc așa cum o stăpânește Stelian NICULESCU, pentru a asigura claritatea și coerența expunerii. Primul desen al unei cartele perforate apare la pagina 46.
Eu am admirat întodeauna pe acei aurori de cărți care au capacitatea de a prezenta lucrurile în așa fel încât cititorul să preia cele scrise, să obțină rezultatele anunțate, ca după aceea, acesta să treacă să rezolve cu mici modificări în programe, propriile-i probleme. Nu mi-au plăcut autorii de cărți care prezintă fragmente de texte sursă și-l lasă pe nefericitul de cititor să le asambleze, acesta depunând eforturi inutile, mai ales atunci când nu va obține niciodată rezultatele dorite, căci prezentarea în carte este incompletă, ambiguă și chiar are strecurate erori bazate pe ipoteze pecuniare.
În 1971, Stelian NICULESCU a impus un stil de programare în FORTRAN, căci el a definit pentru problemele propuse, texte sursă bine gândite, care la acea dată reprezentau un punct foarte înalt în programare și acest start a influențat ani în șir munca programatorilor, orientată spre standarde înalte.
Urmărind acel mod de lucru și nenumăratele faze intermediare până se ajungea ca un program să fie rulat pe calculator, programatorul din vremurile de demult folosea creionul și hârtia cu mare intensitate, căci el nu-și permitea să facă acele erori care acum ni se par normale, când ne așezăm în fața laptopului și ca niște pianiști care știm deja partitura, ne apucăm să scriem un program în C++ sau în PYTHON, căci avem azi cu totul alte resurse decât programatorii anului 1971. În ziua de azi s-au rafinat multe proceduri de a scrie programe și lucrul în echipă cu textele sursă puse în vitrină, au generat un anumit nivel de exigență legat de calitatea acestor texte sursă, încât azi, dacă se propune o aceeași problemă la 100 de programatori, probabilitatea de a se obține 100 de variante foarte diferite, a scăzut vertiginos și cauzele se regăsesc în exigența fiecărui programator din ziua de azi de a fi la un nivel cât mai sus, din moment ce nu mai are motive din care să se plângă în legătură cu calitatea textelor lui sursă, totul depinzând de el și numai de el.
Privind textele scrise de Stelian NICULESCU, căci parametrul PN al cartelei de control JOB conține numele lui, vedem că programatorul Stelian NICULESCU și-a făcut câteva reguli în a scrie programe și anume:
- la început primele linii ale textului sursă sunt comentarii,
- variabilele I, J și K sunt variabile de control cu care se gestionează numărul de cicluri,
- denumirile variabilelor păstrează aceleași semnificații,
- pentru inițializări de matrici se folosesc aceleași secvențe,
- între blocurile schemei logice și program există corespondență.
La 




(25 august 2026)

Saturday, August 22, 2026

Despre textele sursă din cartea Inițiere în FORTRAN de Stelian NICULESCU din anul 1972

Programarea înseamnă scrierea de texte sursă. Cartea referită prin:
Stelian NICULESCU - Inițiere în FORTRAN, Editura Tehnică, București, 1972, 280 pag.
conține 44 de texte sursă tipărite așa cum apar ele de la imprimanta calculatorului și aceste texte sursă trebuie analizate prin prisma obiectivului cărții, de a a-l învăța pe cititor să utilizeze facilitățile limbajului de programare FORTRAN în a-și rezolva problemele, desigur la nivelul anului 1972, nu acum.
În primul rând, remarc consecvența autorului cărții Stelian NICULESCU de a păstra notațiile din enunțul problemei în schema logică și mai apoi în textul sursă.
La pagina 132 se află textul sursă destinat implementării metodei de calcul al unei integrale folosind metoda trapezelor. Funcția f(x) este referită în programul FORTRAN ca F(A), F(B), F(A+X), căci programatorul a identificat mai multe subexpresii în formula de calcul a integralei folosind metoda trapezelor.
Sunt alese denumiri sugestive de variabile și de subprograme. Programul  de la pagina 144 care un factorial, utilizează un subprogram de tip FUNCTION numit FACT()
Dacă programatorul își dorește să-și construiască propria bibliotecă de subprograme, va face astfel de alegeri și-i va fi foarte ușor să identifice componentele bibliotecii atunci când dorește să le reutilizeze.
La paginile 150 și 151 se află textul sursă care exemplifică utilizarea lucrului cu matrici utilizate la definire folosind instrucțiunea DATA și, respectiv, prin citirea elementelor ale căror valori se află perforate cu un anumit format pe cartele. Programul apelează două subprograme de tip SUBROUTINE fără transmitere de parametri în listă, datorită faptului că acei parametri se află specificați în instrucțiunile COMMON scrise atât în programul apelator, cât și în subrutine. Autorul Stelian NICULESCU a ales pentru subprogramul de transpunere a unei matrice, numele TRANSPUS, iar pentru subprogramul de înmulțire a matricilor numele PRODUS.
Se știe că atunci când cineva vrea să scrie un program, o face pentru a rezolva toate problemele din clasa de probleme căreia aparține enunțul problemei pe care a preluat-o programatorul și de aceea, acesta caută să se asigure că atunci când va dori să mai rezolve și o altă problemă din aceeași clasă, nu va fi necesar să intervină pe textul sursă să facă oarece modificări. Autorul cărții, Stelian NICULESCU, a ținut seama de această cerință și în capitolul 11 intitulat APLICAȚII, a matricele de dimensiuni suficient de mari, încât să acopere cât mai multe dintre problemele care ar apărea de-a lungul timpului. În textul sursă al programului 11.1 se definesc matrici cu 50 de linii și 50 de coloane și vectori cu 50 de elemente, prin instrucțiunea:
DIMENSION A(50,50),B(50,50),X(50)
Și în cazul programului 11.7 se definesc matrici de dimensiuni mult mai mari, precum:
DIMENSION A(45,45),B(50,45),P(45,45),T945,45)
iar programatorul care va vrea să înmulțească două matrici și să tipărească matricea produs și transpusa acestui produs, nu va face altceva decât să folosească programul, dacă și numai dacă, matricile lui au numărul de linii și de coloane care să se încadreze în dimensiuniel matricelor definite în programul scris și testat cândva, căci presupunem că textul sursă 11.7 are un set de cartele perforate, o imprimantă și câteva detalii de pregătire a cartelelor cu propriile valori ale eleentelor matricelor A și B.
Când am citit textele sursă 5.9 de la pagina 124 și 5.11 de la pagina 126, mi-am adus aminte de seminariile mele de programare din studenție, când Ștefan MUSTĂȚEA, asistentul nostru ne-a prezentat problemele de alegere a elementului maxim dintr-un șir și de ordonare crescătoare e a elementelor unui șir pentru a scrie programe în COPCODER pe care să le rulăm pe calculatorul japonez NEAC 1240. Am studiat cu atenție textele scrise de autorul cărții, Stelian NICULESCU am regăsit aceleași idei în care inițializam o variabilă de lucru Y=X(1) după care o comparam cu celelalte elemente din șir și o modificam dacă Y era mai mică decât respectiva valoare a șirului.
În cazul ordonării elementelor unui șir, asistentul nostru ne-a prezentat mai multe variante, dar una dintre ele era eficientă, căci dacă șirul era deja ordonat, procesul de ordonare se oprea automat. Stelian NICULESCU definește o variabilă INDEX care contorizează inter-schimburile de elemente și procesul se încheie dacă și numai dacă după un proces de comparare nu mai apar interschimburi de elemente, ceea ce înseamnă că șirul este ordonat.
Programul de la capitolul 10 intitulat SEGMENTAREA PROGRAMELOR corespunde vremurilor de demult când erau restricții severe de memorie internă a unui calculator, iar dimensiunile operanzilor erau foarte, foarte mari. Atunci se segmentau programele, ceea ce însemna că exista un segment de bază, permanent în memorie cu operanzi necesari tuturor etapelor și segmente care se încărcau dinamic, executau prelucrări, după care lăsau loc altor segmente de program. Este ceea ce în viața de zi cu zi se întâmplă cu depozitările temporare a mărfurilor.
În programul 10.1 aturoul cărții Stelian NICULESCU a definit un segment principal unde a inițializat matricele A(45,45) și B(45,45) de mari dimensiuni, pe care le-a inițializat. Această parte de text sursă a plasat-o în segmentul numit S1. A construit o subrutină unde a adunat martricele A și B și a aflat elementul maxim al matricei rezultate din adunare. Acest fragment de text sursă l-a plasat într-un segment numit S2. El a mai construit un segment numit S3 în care a scris liniile sursă ale unei subrutine destinată scăderii dintre două matrice și aflării elementului minim din matricea rezultat.
Apelurile folosind instrucțiunea CALL realizează mai întâi încărcarea segmentului S1 și apoi executarea operațiilor procedurii AD(MAX). Celălalt apel determină încărcarea segmentului S3, apoi execuția operațiilor de prelucrare corespunzătoare ale subrutinei SC(MINI).
Autorul folosește în acest text sursă și ideea de procedură cu mai multe puncte de intrare ENTRY  SUBSC pentru a da un pic de culoare textului sursă, căci toată lumea știe că soluția era un pic alta dacă ENTRU e precedat de RETURN.
Chiar dacă este vorba de concepte ceva mai aride ale limbajului FORTRAN, autorul a găsit modalități clare de prezentare, fără a-l speria pe cititor că limbajul este greu, că este pândit la tot pasul de erori. Este foarte clar că prezentarea elementelor limbajului și exemplificarea fără a introduce eventuale erori pe care le-ar face programatorul, arată caracterul pozitiv al abordării. La paginile 47 și 48 cititorul este atenționat care sunt erorile pe care dacă le face, construcțiile sale nu mai sunt identificatori, căci ies în afara definiției
<identificator> ::= < literă > | <identificator> < literă > | <identificator> < cifră > 
Faptul că există textele sursă tipărite după listingurile obținute la imprimanta un calculator FELIX C 256, dovedește că toate programele au fost rulate și cititorul dacă va avea și el un set de cartele perforate identice, va obține la rulare exact programele existente în cartea lui Stelian NICULESCU.
Am scris undeva că recitind această carte, am remarcat prospețimea ei, deși limbajul FORTRAN este istorie, căci problemele enunțate, soluțiile propuse și secvențele de texte sursă sunt exact ceea ce trebuie unui programator. Cărțile despre alte limbaje de programare din zilele noastre au cam aceeași structură. Este adevărat că limbajele de azi folosesc pointeri, structuri de tip articol, obiecte, recursivitate, alocări dinamice de memorie și numeroase biblioteci de funcții, dar cu un mic efort de imaginație, toate ar putea fi alipite aici, adăugând noi capitole, dacă și numai dacă limbajul FORTRAN ar mai fi și el un pic șlefuit și ar fi aruncate peste bord restricțiile prea dure, puse în vremurile de demult pentru a avea pentru el un compilator cu fiabilitate cât mai ridicată.
Nu spun că trebuie să privim cu indulgență ceea ce era acum 54 de ani, dar trebuie să acceptăm ideea că fără progresele generat de produsele software scrise în limbajul FORTRAN multe dintre realizările de care beneficiem acum nu ar fi existat și mă refer la construcțiile ale căror calcule de rezistență s-au obținut prin rulări de programe FORTRAN, la navele gigantice care circulau pe oceane, a căror proiectare s-a făcut pe calculator cu programe FORTAN, ca să nu mai zic prea multe despre zborurile omului spre Lună, care au fost dirijate la NASA tot folosind programe scrise în FORTRAN.


(22 august 2026)

Friday, August 21, 2026

Cartea Inițiere în FORTRAN de Stelian NICULESCU din anul 1972

Azi am rpimit prin coletărie rapidă cartea referită prin:
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; la paginile 151 și 152 sunt prezentate subprogramele SLITE, SLITET și SSWTCH, iar programul 11.8 de la paginile 262 - 263 exemplifică utiliarea acestor subprograme; la pagina 152 apare definirea  J =1 dacă cheia I este 0 și J = 2 dacă cheia  I este 0, ceea ce impune consultarea unei documentații originale din vremurile de demult, aspect deloc facil în ziua de azi;
- 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)

Saturday, December 28, 2024

Colega mea de catedră Afrodita IORGULESCU.

Când s-a pensionat, Afrodita IORGULESCU era profesoară universitară. O cunoșteam de când am venit eu în Catedra de Cibernetică Economică ca asistent universitar stagiar în septembrie 1971, pe când  Afrodita IORGULESCU era asistentă universitară, venită prin repartiție guvernamentală în învățământul superior, ca absolventă strălucitoare a Facultății de Matematică de la  Universitatea București.
Afrodita IORGULESCU a avut seminarii de programarea calculatoarelor electronice și de metode numerice și a fost o prezență interesantă în catedră, apreciată mai ales de cei care au iubit dreptatea și adevărul, căci Afrodita IORGULESCU a fost întotdeauna adepta aplicării corecte a regulilor.
Îmi amintesc că s-a organizat instantaneu o ședință de catedră ca un nene barosan de la Direcția Centrală de Statistică, doctorandul lui Manea MĂNESCU să-și susțină un referat de doctorat. Erau prezenți în sala de la etajul al VI-lea din clădirea Ciberneticii toți mahării catedrei, dar și sclaveții catedrei, adică noi cei mărunți, asistenți, lectori și conferențiari. Nenea barosanul a început să vorbescă, dar Afrodita IORGULESCU s-a ridicat în picioare și a spus că nu este în regulă ce se întâmplă, căci regulamentele spun că la susținerea unui referat, conducătorul științific al doctorandului trebuie să fie prezent. I-am văzut pe mahări cum se schimbă la față. Unul dintre ei a ieșit din sală, a luat legătura cu al II-lea om în stat și a venit furios pentru a anunța că se întrerupe ședința și se reprogreamează susținerea referatului la un alt termen. Manea MĂNESCU era omul respectării regulamentelor și legilor. Nu mai știu când a fost susținut referatul, dar cu siguranță că s-a susținut, tot fără ca Manea MĂNESCU să fie prezent, dar anturajul nu era ostil încălcării regulamentului.
Afrodita IORGULESCU era împotriva copiatului la examene, drept care împărțea studenților foi de hârtie semnate de ea pentru ca aceștia să scrie soluțiile subiectelor date de ea, fie la examenele deprogramare, fie la examenele de metode numerice. Când în consiliul profesoral se punea problema sancționării studenților care încercaseră să promoveze prin fraudă, Afrodita IORGULESCU era extrem de vehementă și nu accepta niciun act de clemență. Eram de acord cu ea, dar de fiecare dată am subliniat că formularea de subiecte se face și  cu crearea condițiilor ca nimeni să nu copieze, personalizând subiectele, numai că acele teze sunt mai dificil de corectat și profesoara Afrodita IORGULESCU nu prea avea asistenți, datorită unui mod al ei specifici de a-și defini criterii de exigență în colaborarea de zi cu zi și tinerii o evitau.
Sunt multe de spus despre profesoara Afrodita IORGULESCU, dar chestiunile oficiale se găsesc în articolul din 22 martie 2021.
Eu am mai zice că prin anul 1990 pe gând era fenomenul Piața Universității, Afrodita IORGULESCU frecventa acel loc și apărea în ASE cu cocarda de GOLAN prinsă în piept, spre analiza forțelor moderate din această instituție, unde mulți erau feseniști cu acte, dar nu recunoșteau.
Să zic și despre momentele ce au urmat alegerii lui Emil CONSRTANTINESCU în funcția de președinte, când la anunțarea rezultatelor și când Emil CONSTANTINESCU a ținut un discurs în balconul primăriei Bucureștiului, Afrodita IORGULESCU se lăuda că a fost în balcon și extaziată ne vorbea cum i-a atins sacoul președintelui proaspăt ales.
Afrodita IORGULESCU a publicat articole în reviste ISI care au fost utile inastituției în a obține o bună clasificare în lumea academică.
Afrodita IORGULESCU a publicat cursuri precum Metode numerice si programare Pascal  - 1996, de 333 pagini în editura INFOREC, ISBN: 9739743501, Exerciții de programare structurata in Cobol - 1997, de 337 pagini în editura ALL, ISBN: 9735710552,  Logica matematica - 2010, în colaborare cu George GEORGESCU, de 299 pagini, la Editura ASE ISBN: 9786065053458, dar și multe altele, ea fiind recunoscută pentru profesionalismul, dăruirea și rigurozitatea cu care a abordat întreaga problematică.
Afrodita IORGULESCU face parte din categoria oamenilor necesari în momente critice ale unei colectivități pentru că vine cu idei care să-i scoată pe oameni din impas, numai că mulți dintre ei după ce trec momentele dificile se fac că uită totul și se gândesc numai la foloasele pe care le trag din ceea ce va să vină, uitând că nivelul calității în orice proces vine numai după muncă inteligentă făcută cu sudoare.






(28 decembrie 2024)

Sunday, June 25, 2023

Recitați programe PASCAL, C++, PYTHON etc...

Am avut surpriza să constat că oamenii memorează programe pentru rezolvarea de probleme  pe calculator și le recită la momentul potrivit. Ei nu construiesc programe. Ei nu știu să construiască programe. Le iau ca pe niște poezii, le memorează și le recită. Se întâmplă acest lucru că în clasele elementare și în liceu, ei nu au fost învățați să învețe, ci au fost puși să memoreze și să redea fără să gândească ceea ce fac, din cauza profesorilor care nu știau la rândul lor să facă altceva, decât să citească, să memoreze și să recite, fără să fi înțeles o iotă din ce trăncăneau elevilor la clasă. Eu am avut o profesoară în clasa a VIII- a care recita lecția din cartea de fizică, iar dacă am urmărit-o cu cartea în bancă, m-a sancționat cu nota doi, chiar de două ori în aceeași lecție, drept care am urât-o și pe ea, dar și pe toți recitatorii de la catedră, pentru care nu am niciun respect, pentru că eu consider că știința nu se recită, ci se înțelege, se explică și se folosește creativ în soluționarea logică a problemelor din viața de zi cu zi.
Școala așa cum este acum clădită trece prin momentele ei cele mai puțin favorabile, căci dispune de un corp profesoral orientat spre cantitate, nu spre calitate. Elevii primesc zeci și zeci de exerciții de același fel sau tip de rezolvat, primesc rezumate pe care trebuie să le memoreze. Elementul de creativitate lipsește cu desăvârșire din moment ce profesorii lor sunt chitiți doar pe memorare și redare, fiind lipsiți de orice urmă de creativitate, de gândire spre ceva nou, în care ei să fi avut o contribuție, cât de cât.
Pentru cei care ar trebui să scrie programe pentru calculator este o calamitate memorarea de programe, căci fiecare problemă are ceva al ei și preluarea mecanică de secvențe de instrucțiuni la un program existent, fără a ști ce modificări trebuie făcute, va duce la soluții care nu au nicio legătură cu obiectivul stabilit. 
Îmi amintesc că la un examen de Structuri de date, un student a tras biletul, l-a citit, apoi s-a așezat la calculator și asemeni unui pianist de mare virtuozitate, s-a apucat să tasteze textul sursă. Am avut surpriza să constat că studentul scria un program memorat, care nu avea nicio legătură cu enunțul din biletul de examen. Când l-am întrebat de ce nu are o foaie de hârtie pe care să scrie și el ceva din rezolvare, mi-a zis că nu are nevoie, că programul este foarte simplu. Întâmplarea a făcut ca să colaborez cu el la lucrarea de licență și să-i arăt că a programa nu înseamnă a memora, ci a gândi, a fi creativ, a da soluție. S-a minunat și mi-a zis că regretă că nu ne-am cunoscut cu ceva mai mult timp înainte, căci cu totul altfel ar fi fost viața lui. Dezbăratul de memorat e greu, căci memoratul fără a înțelege contextul e boală grea.


(25 iunie 2023)

Tuesday, May 30, 2023

Eu și comentariile

Nu este vorba de comentarii pe marginea unor probleme, ci de comentariile pe care eu le scriu în programele pe care le scriu. Am simțit nevoia să scriu comentarii pentru că:
- scriu destul de multe programe,
- eu uit ce fac secvențele din  programe,
- este nevoie să depanez peste ani programe,
- mă gândesc să fac economie de timp.
Primul lucru pe care îl fac atunci când învăț un limbaj de programare este cum se definesc comentariile. De la limbaj la limbaj există diferențe. Sunt comentarii care se scriu pe fiecare linie. Sunt comentarii care includ mai multe linii consecutive.
De la limbajul FORTRAN am văzut că se scriu comentarii folosind asteriscuri care formează un chenar și se vede mult mai bine zona de comentarii. Mie îmi plac limbajele care au menținut regulile de scriere a comentariilor. Cândva am văzut o carte în care erau prezentate 5 limbaje de programare și autorul sistematizase într-un tabel cu șase coloane datele despre fiecare limbaj. O coloană conținea specificații, iar celelalte 5 coloane se refereau la cele 5 limbaje. Acolo erau definite și comentariile, ceea ce m-a entuziasmat. În C++ dacă vreau să scriu comentarii pe o linie, le preced cu două slash-uri. Dacă vreau să scriu comentarii pe mai multe linii, încep comentariul cu caracterele /* și-l închei cu */.
În limbajul HTML, un comentariu începe <!-- cu și se termină -->.
În programare, avem posibilitatea de a transforma secvențe de program în comentarii și facem niște schimbări utile și simple, mai ales când apar schimbări de algoritmi, în ideea de a elimina anumite prelucrări, mai ales dacă nu suntem siguri că acele eliminări că sunt permanente.


(30 mai 2023)

Monday, May 15, 2023

Eu și cartela perforată

Lumea nu trebuie să uite de unde s-a plecat. Este adevărat că acum dispunem de suporți de memorare de ordinul a 10Tb, dar prin 1960 se lucra cu cartela perforată, un suport făcut din hârtie pe care se perforau texte cu cel mult 80 de caractere. O cutie conținea 2.000 de cartele și avea cam două kilograme. Dacă ne gândim la un recensământ al unei populații de 20.000.000 de locuitori și dacă pentru fiecare persoană datele ar încăpea pe o cartelă, ar necesita 20.000.000 de cartele, adică 20.000 de cutii de cartele, adică 40 tone. De regulă, un recensământ necesită un formular unde persoanele sunt descrise pe câte 5 cartele, adică sunt necesare 200 tone de cartele perforate, care sunt stocate într-un apartament de 3 - 4 camere umplut până la refuz cu cutii de cartele. În ziua de azi, pe un stick de memorie de 256 Gb conținutul celor 100.000.000 de cartele vor încăpea lejer și încă mai rămâne foarte mult spațiu neocupat.
Eu am lucrat mulți ani cu cartele perforate, încă din vremea studenției până după anul 1990 când și-au făcut apariția dischetele, apoi CD-urile, apoi discurile externe și acum tot felul de stick-uri de memorie care au capacități de zeci sau sute de Gb, dar există dispozitive de memorare de 1, 2, 4, 10 Tb la prețuri accesibile.
Totuși eu n-am să uit cartela perforată care mi-a adus multe satisfacții la vremea mea, căci cu ea am reușit să rulez programe în limbajele FORTRAN și COBOL. Am nostalgia căratului cartelelor spre dispeceratul calculatorului și retrăiesc emoțiile așteptării hârtiei de imprimantă cu rezultatele oferite de unul din calculatoarele cu care lucram IBM 360 sau FELIX C-256.
Au fost momente frumoase, dar au fost și momente triste, căci se întâmpla ca o cartelă să fie agățată de către cititorul de cartele, să o distrugă și o dată cu ea se pierdea conținutul și dacă acolo era o linie sursă a programului, riscul era să nu se obțină un rezultat corect sau să nu se obțină decât o analiză de text sursă cu foarte multe erori, dacă respectiva cartelă distrusă conținea definirea de variabile, de exemplu.
Când am arătat studenților mei în anul 2010 o cartelă perforată nu le venea a crede că informatica a însemnat și cartela perforată, că dezvoltarea informaticii de dinainte de 1990 s-a făcut preponderent pe bază de cartele perforate, căci calculatoarele personale erau doar un vis frumos.



(15 mai 2023)

Monday, April 17, 2023

1.000 de oameni care m-au impresionat: Radu GAROFEANU

Acum foarte mulți ani am avut cursuri de programare și de programe aplicative pentru studenții de la forma de seral a Facultății de Cibernetică. Printre studenți era și Radu GAROFEANU. El s-a remarcat prin faptul că de câte ori era nevoie să iasă cineva la tablă să scrie programe, el era acela și ceea ce făcea, făcea bine, ceea ce m-a impresionat, căci de regulă studenții de la seral erau orientați să obțină o diplomă, căci ei loc de muncă aveau, numai că trebuiau să pună de acord acel loc cu studiile lor. Radu GAROFEANU era altceva. El dorea să învețe să programeze, lucru pe care l-a făcut. Lucra undeva pe Calea Dorobanților la o companie de electricitate sau ceva cu energetica. 
După ce a terminat facultatea, Radu GAROFEANU a plecat din București și s-a mutat în vestul țării. Am ținut legătura și el este unul dintre puținii absolvenți de acum foarte mulți ani cu care schimb mesaje, care dacă vine în București căutăm să ne vedem și care de sărbători mă felicită. Este o chestiune de caractrer și Radu GAROFEANU dovedește că este un tip de mare caracter.
I-am urmărit evoluția. Profesional, Radu GAROFEANU este cel pe care l-am văzut eu, adică un profesionist. Are familie. Are un băiat. Este un om realizat, exact așa cum se prezenta încă din studenție. El verifică teoria mea că un om care face câteva lucruri consecutive, foarte bine, unul după altul, este în stare să facă totul foarte bine, deci este un om bun pentru tot restul vieții. 

(17 aprilie 2023)

Saturday, April 15, 2023

O carte pierdută pe vecie

 Eram in anul 1979 și lucram la disciplina Programe aplicative. Am avut surpriza că deși lucram de ceva vreme la această disciplină și eram singura persoană cu doctorat din colectiv, am fost ocolit atunci când a fost scris un curs, al cărui coordonator devenise cineva care nu lucrase o secundă pe domeniu. Chestia m-a deranjat teribil și atunci am luat hotărârea să dispar două săptămâni, timp în care, având mașină de scris, am dactilografiat câteva sute de pagini A5, iar pe copertă am scris PROGRAME APLICATIVE, Vol III, Construirea sistemelor de programe. Volumul a fost tipărit la Litografia ASE și am căutat să păstrez un exemplar. Numai că, mutările care s-au produs în timp, au generat debarasarea de multe dintre volumele pe care le aveam și în final m-am găsit în situația că acest volum nu-l mai am. Căutând prin biblioteca ASE care este în format digital, nu am găsit acest volum. Îl consider pierdut. Am regretat că nu-l mai am căci acolo încercasem să pun tot felul de indicatori de măsurare a caracteristicilor de calitate pentru programe și pentru sisteme de programe. Îmi pare rău, dar nu am ce face. Nu este prima dată când am pierdut ceva. S-au întâmplat situații în care din dorința de a elibera spațiu de memorie, aș făcut ștergeri de fișiere și accidental, am șters și fișiere care nu trebuiau șterse. Am considerat că sunt accidente și m-am resemnat. Așa fac și acum, dar uneori, îmi aduc aminte de acea carte și regret că nu o mai am. Am avut impresia că era o carte specială. Oftez și merg mai departe.


(15 aprilie 2023)

Monday, March 13, 2023

1.000 de oameni care m-au impresionat: Maria POP

Maria POP a fost profesoara mea de Contabilitate, când eram student în anul al IV-lea la Secția de Mecanizare și Automatizare a Calculului Economic de la facultatea de Calcul Economic și Cibernetică Economică, iar la examenul din 4 februarie 1969 am primit nota 10(zece). Sunt foarte mândru că am în carnetul meu de student semnătura acestei profesoare.
Cursurile profesoarei  Maria POP erau foarte bine structurate.
Expunerile profesoarei Maria POP erau clare, cristal mai exact.
Profesoara Maria POP îmbina partea teoretică cu partea practică.
Țin minte ca și acum cursul de contabilitate în care ne-a explicat cum se fac înregistrările contabile atunci când cineva merge și lasă la consignația un produs spre a fi vândut. Erau foarte logice explicațiile și înregistrările contabile prezentate de doamna Maria POP erau așa de naturale, de credeai că le știai dintotdeauna și la curs, doar vine să ni le reamintească. Cred că dacă aș mai avea cursurile sale, mi-ar trebui doar o singură lectură și aș fi în stare să reproduc firul formulelor contabile, căci ceea ce am învățat atunci, este ca mersul pe bicicletă. Nu se uită niciodată. Cu ceea ce mi-a spus la cursuri Maria POP mi-a întărit convingerea că știința contabilității este o construcție foarte bine definită și acolo nicio cărămidă nu este pusă la întâmplare. Îmi aduc aminte că doamna Maria POP a vorbit de o punere în corespondență a conturilor și a mai zis că sunt conturi care niciodată nu se pun în corespondență. Atunci m-am gândit la rutele interzise de la problema transporturilor, unde costurile sunt infinite, tocmai pentru a nu fi incluse în rutele care minimizează funcția obiectiv. Atunci mie mi-a venit ideea să fac o matrice cu N linii și N coloane, câte conturi are planul de conturi și să pun X la intersecția liniei I cu coloana J atunci când Contul I are o formulă contabilă cu contul J, de tipul Contul I (debit) = Contul J (credit). Nu mai zic nimic, dar implementarea inteligenței artificiale în contabilitate ar face mult mai digerabilă contabilitatea și ar orienta-o spre cetățean. Acum tac.
Admirația mea pentru profesoara Maria POP este imensă, căci în lucrarea mea de la diplomă, am gândit un limbaj formal orientat spre contabilitate și chiar am scris un program FORTRAN folosind ceea ce m-a învățat doamna profesoară, pentru a automatiza construirea de formule contabile, pornind de la propoziții scrise în limbaj natural.


(13 martie 2023) 

Wednesday, March 8, 2023

1.000 de oameni care m-au impresionat: Anisur RAHMAN

Anisur RAHMAN era de fel din Republica Bangladesh și în anul 1980 era student în anul al IV-lea și ultimul al facultății de Planificare și Cibernetică Economică. L-am remarcat pe Anisur RAHMAN la cursurile de programare a calculatoarelor electronice, unde se învăța să se lucreze în limbajele FORTRAN, COBOL și ASSIRIS, pe calculatorul FELIX C-256. Mi-a plăcut cu scria programele, cum rezolva probleme date pentru lucrul individual. 
Văzând că el înțelege bine cum se lucrează în acele limbaje de programare și analizând capacitatea lui de a atinge unele elemente de subtilitate de programare, mi-am propus să realizez împreună cu Anisur RAHMAN o lucrare de licență prin care să facem o analiză comparată a virtuților diferitelor limbaje de programare, pentru a spune concret care sunt diferențele și să și măsurăm cantitativ efectele pe acre le generează acele diferențe. Anisur RAHMAN a fost de acord să abordăm o astfel de problematică.
În primul rând trebuiau scrise multe programe.
În al doilea rând, trebuiau scrise programe pentru o aceeași problemă în cele trei limbaje.
În al treilea rând, trebuiau făcute măsurători și calculați indicatori de calitate software.
Anisur RAHMAN a trecut la treabă și după o muncă intensă, deja aveam tripletele de programe și tabelul de date. Apoi s-a trecut la calculul de indicatori statistici și la efectuarea de corelații între coloanele de date numerice rezultate din măsurătorile făcute asupra programelor. Consider că Anisur RAHMAN a realizat o lucrare de diplomă care și acum după peste 40 de ani de la susținere, dacă s-ar mai găsi pe undeva depozitată, ar fi la fel de interesantă ca și acum și ar dovedi că și la nivelul anilor '80 se realizau lucrări interesante, valoroase, originale și fără uzură morală, deși vremurile nu erau așa de relaxate ca acum.
Anisur RAHMAN a participat cu această lucrare intitulată Analiza comparată a performanțelor pentru limbaje de programare la a XV-a Conferință Națională a Cercurilor Științifice Studențești din 15 -16 noiembrie 1980 de la Universitatea din Timișoara. Lucrarea a fost prezentată duminică 16 noiembrie 1980 în intervalul 8:00 - 14:00 la sala 403, în secțiunea Informatică, Mecanică, Matematici Aplicate. Lucrarea este anunțată la pagina 12 a programului conferinței, secția a VIII-a.
Acum sunt prieten pe Facebook cu Anisur RAHMAN care lucrează  în Sydney, Australia.
În data de 31 martie 2023 la ora 12:00 va avea loc susținerea tezei de abilitare a lui Claudiu VINȚE intitulată Cercetări privind entropia intrinsecă a valorilor mobiliare tranzacționate la bursă, susținute de dezvoltări software orientate pe mesaje în fața unei comisii formată din profesorii Claudiu VINȚE,Ion SMEUREANU,Marian DÂRDALĂ,Adriana REVEIU,Felix FURTUNĂ, Paul POCATILU, Claudiu HERȚELIU, Mircea ASANDULUI, Gabriela MIRCEA, Mircea GEORGESCU.


(08 martie 2023)

Tuesday, March 7, 2023

1.000 de oameni care m-au impresionat: Richard MULLER

Richard MULLER a fost și el absolvent al Secției de Mecanizare și Automatizare a calculului Economic din Facultatea de Calcul Economic și Cibernetică Economică, pe vremea când facultatea avea durata studiilor de 5 ani și admiterea avea trei probe, din care una de algebră, una de analiză matematică și a treia probă era la alegere dintre fizică, geografie și economie politică, dar viitorii studenți de la Mecanizare în proporție covârșitoare alegeau fizica.
Richard MULLER, după terminarea facultății, având o medie foarte mare, a obținut la repartiție un post în centrul de calcul al ASE. Eu mă cumoșteam cu el de la cămin din vremea studenției noastre și după ce a lucrat în Centrul de calcul al ASE, locuia în Berceni unde locuiam și eu, iar duminica ne întâlneam prin comunele de lângă București, căci amândoi aveam plăcerea de a merge pe biciclete. Eu aveam o semi-cursieră SPUTNIK cu care mergeam duminică de duminică. Făceam pauze și discutam despre programare. El îmi vorbea despre proiecte. Îmi amintesc că lucra ceva legat de niște fișiere înlănțuite și avea deja un software făcut de el, care implementa funcții extrem de interesante.
Richard MULLER era un nume în Centrul de calcul. Inginerul Iulian SATRAN, considerat în acele timpuri un creier adevărat printre informaticienii care lucrau pe calculatorul IBM 360 avea cuvinte de apreciere la adresa lui Richard MULLER, lucru care nu se întâmpla și în alte cazuri.
Am mers la câteva seminarii științifice unde Richard MULLER și-a prezentat produsele software la care lucrase și m-a impresionat deschiderea lui pentru lucrurile noi, dar comparativ cu alții care doar vorbeau, Richard MULLER era omul care vorbea despre lucruri noi cu care lucrase efectiv și proba cu componente software operaționale.
La un moment dat, când l-am întâlnit duminica în drumurile noastre cu bicicletele mi-a zis că i s-a aprobat plecarea din țară și de aceea nu mai lucra în Centrul de calcul. I-am spus că mă bucur pentru el, că-și vede visul realizat și l-am asigurat că așa cum este el de serios și de bine pregătit profesional va fi strălucitor indiferent unde va merge. 
De atunci nu l-am mai întâlnit pe Richard MULLER, dar uneori mă gândesc la cât de bun programator era el, la cât de temeinic lucra și la cât de serios își argumenta opțiunile și soluțiile. Mi-am dorit de multe ori să fiu și eu cam cu același mod de a lucra, pentru că în mintea mea, Richard MULLER era garanția succesului garantat, căci atunci când faci o treabă cum scrie la carte, nu există riscul vreunui rateu sa vreunei interpretări din partea celor care sunt în stare doar să-și dea cu părerea și nimic altceva.


(07 martie 2023)

Thursday, March 2, 2023

1.000 de oameni care m-au impresionat: Ion SĂVULESCU

Ion SĂVULESCU a fost studentul meu în vremurile când Facultatea de Calcul Economic și Cibernetică Economică s-a transformat în Facultatea de Planificare și Cibernetică Economică. El era studentul cu acel caracter cu totul special, pe care mi l-am dorit să devină asistent universitar.
Ion SĂVULESCU este un tânăr cu coloană vertebrală.
Ion SĂVULESCU este un tânăr cu sete de cunoaștere.
Ion SĂVULESCU spune lucrurilor verde în față.
Ion SĂVULESCU are aplecare spre studiu.
Ion SĂVULESCU are idei și opinii pe care știe să și le susțină.
Ion SĂVULESCU are spiritul dreptății.
Mie mi-au  convenit trăsăturile de caracter ale lui Ion SĂVULESCU și am discutat cu el ca la repartiție să opteze pentru un post în învățământul superior. Spuneam că studentul Ion SĂVULESCU este omul dreptății și are un spirit critic ascuțit. Mie îmi convin oamenii care sunt așa. Cei care sunt lingăi, cei care se fac preș, pentru a face pe placul celor din jur nu-mi sunt pe plac, pentru că ei lasă să scape erori și atunci când s-a publicat un material cu erori, nu se mai drege cu nimic și te umpli cu noroi pentru că un ins slab de înger nu a avut curajul să te tragă de mânecă și să-ți spună că greșești. Studentul Ion SĂVULESCU nu era un om slab, un om care să accepte orice. El are spiritul critic foarte ascuțit. Se pare că a supărat pe cineva, iar acel cineva a găsit o coadă de topor să se răzbune și i-a pus o talpă tânărului student Ion SĂVULESCU, astfel încât să nu mai aibă șansa de a veni în catedră. Cu proxima ocazie, după ce-și văzuse visul cu ochii, cel ce se răzbunase, a soluționat problema, dar nu mai avea nicio valoare. Am regretat profund faptul că Ion SĂVULESCU nu a devenit asistent universitar. Noi începuserăm să lucrăm atunci, la ceva despre programarea structurată în FORTRAN, într-o altă viziune decât ce fluturată în cărțile de la Editura Tehnică și vândute în tiraje amețitoare de cel care deținea monopolul acestui domeniu.
El a prezentat lucrarea Modernizarea lansării în fabricație a producției la I.M.U.A.B. - lansarea pe loturi economice, coordonată de profesor unioversitar Ion ROMÂNU, la Colocviului Național Studențesc PROBLEME ACTUALE ALE INFORMATICII ȘI MATEMATICII APLICATE, din zilele de 7 și 8 aprilie 1980, desfășurat la Universitatea Al. I. CUZA din Iași







(02 martie 2023)

1.000 de oameni care m-au impresionat: Ioana POPESCU

A fost o vreme în care mă interesa în mod deosebit problema corectitudinii programelor. Aveam o documentație, zic eu, de invidiat pe acestă problemă, căci primeam articole din străinătate, deoarece trimiteam cărți poștale prin care rugam autorii să-mi trimită articolele publicate de ei. Cred că aveam pe probleme de corectitudine cel puțin 100 de articole fundamentale.
Am observat un lucru straniu. Toți autorii discutau niște chestii total mișto, numai că atunci când treceau la fapte, foloseau demonstrarea corectitudinii programelor folosind un program scris în limbajul ALGOL care implementa algoritmul lui EUCLID, ceea ce m-a descumpănit. Mi-a venit ideea de a studia un mod de a demonstra corectitudinea unui program FORTRAN ceva diferit de acea implementare a algoritmului lui EUCLID.  
Când a venit problema elaborării de lucrări de stat, echivalentul lucrărilor de licență de azi, am formulat un titlu ceva de corectitudinea programelor FORTRAN și un alt titlu, ceva despre corectitudinea programelor COBOL. Am avut surpriza că la una dintre lucrări s-a înscris Ioana POPESCU o studentă foarte bună, care știa programare în limbajele FORTRAN, COBOL și ASSIRIS. Ea avea cunoștințele care să-i permită realizarea unei lucrări bune, pentru că demonstrarea corectitudinii necesita folosirea unui aparat matematic elaborat, ori Ioana POPESCU avea note foarte bune la matematică.
I-am dat materialele de care dispuneam. Ea s-a apucat să studieze și am discutat destul de mult. Am structurat lucrarea. Am căutat exemple de programe de care să ne ocupăm. Ea a reușit să scrie capitolele lucrării și să facă unele demonstrații de corectitudine. Am sfătuit-o s-o ia gradual, nu cu programe foarte simple, ci cu secvențe de programe simple. Așa a progresat și s-a prezentat în fața comisiei de examen de stat cu o lucrare extrem de interesantă, care aborda o problemă nouă. Îmi aduc aminte că ceva mai târziu a apărut lucrarea lui Cristian CALUDE de calculul complexității


(01 martie 2023)

Thursday, February 16, 2023

1000 de oameni care m-au impresionat: Radu GAROFEANU

Radu GAROFEANU a fost studentul meu la Secția de Informatică Economică la seral. Am lucrat împreună la lucrarea de licență și mi-am dat seama că el este un om înzestrat cu calități necesare unui programator eficient. Am continuat să ne vedem și după terminarea facultății. Sunt mulți ani de la terminarea facultății. Radu este stabilit în Timișoara, dar când trece prin București, ne auzim la un telefon și ne vedem. Este realmente o plăcere să văd cu acest tânăr a evoluat în timp și acum, ajuns la maturitate, este exact acolo unde și-a dorit, prin munca lui și prin talentul lui.
Am apreciat la Radu GAROFEANU punctuașlitatea, perseverența și un lucru care mi s-a părut esențial este legat de faptul că nu lasă nimic neverificat, astfel încât atunci când apeși pe butonul ENTER să pornească rularea programului și să se obțină rezultate complete și corecte, fără a exista riscul unor întreruperi accidentale.
Cine stă de vorbă cu Radu GAROFEANU va fi impresionat de seriozitatea și claritatea  explicațiilor lui, astfel încât nu trece la pasul următor până nu s-a convins că persoana din fața lui a înțeles despre ce este vorba și va executa operații independent de cel care a scris programul, fără a avea riscul întreruperii fluxului de prelucrare. Numai oamenii speciali au această mentalitate.


(16 februarie 2023)

Monday, February 13, 2023

1000 de oameni care m-au impresionat: Ștefan MUSTĂȚEA

Ștefan MUSTĂȚEA a fost asistentul nostru pe când eram în anul al IV-lea de studenție și învățam să programăm calculatoarele electronice CIFA 101 Economist și NEAC 1290, primul folosind cod mașină și al doilea, folosind un limbaj numit COPCODER. De la profesorul meu Ștefan MUSTĂȚEA am învățat să gândesc programele.
Ștefan MUSTĂȚEA nu vorbea mult.
Ștefan MUSTĂȚEA explica pas cu pas ce trebuie făcut.
Ștefan MUSTĂȚEA construia scheme logice excepționale.
Ștefan MUSTĂȚEA știa să transforme algoritmii în cheme logice cu cea mai mare ușurință.
Ștefan MUSTĂȚEA explica așa de frumos, căci toți am înțeles și învățat ceea ce trebuia.
Dacă știu programarea pe care o știu și dacă gândesc programele, totul datorez lui Ștefan MUSTĂȚEA, căci el, asemeni unui învățător care-ți pune creionul în mână, mi-a pus în mână creionul, foaia de hârtie și tastatura pentru a fi în stare să scriu un program, pornind de la enunțul problemei, oricare ar fi ea. Am avut senzația că Ștefan MUSTĂȚEA nu știe să zâmbească, dar așa cu seriozitatea și cu economia lui de cuvinte, asemeni profesorului meu de fizică din liceu Eugen BOIA, Ștefan MUSTĂȚEA făcea, nu vorbea. Avea vorba măsurată, căci programele nu se comentează, ele se construiesc, iar la schemele logice, exactitatea este esențială, căc la ele se aplică toate proverbele românești. O variabilă nu se utilizează înainte de a fi inițializată, căci nici carul nu se pune înaintea boilor.


(13 februarie 2023)

Saturday, January 14, 2023

1.000 de oameni care m-au impresionat: Constantin Gelu APOSTOL

Constantin Gelu APOSTOL este absolventul strălucit al primei promoții de studenți ai Secției de Mecanizare și Automatizare a calculului Economic din anul 1969, de la Facultatea de Calcul Economic și Cibernetică Economică. De la absolvire, a devenit asistent universitar stagiar în Catedra de Cibernetică Economică și când am venit eu în catedră în 1971 l-am găsit acolo. Dumnezeu a vrut ca Valer ROȘCA, Constantin Gelu APOSTOL, Ion Gh. ROȘCA și Ion IVAN, adică eu, să formăm o echipă care a lucrat la elaborarea unor materiale, dintre care cursul în două volume de ASSIRIS, pe care l-am publicat în anul 1974, este cel mai reprezentativ.
Cu Gelu APOSTOL am fost în baze de practică agricolă la fermele viticole de la Zimnicea.
Gelu APOSTOL mi-a vorbit mult despre preocupările lui de arheolog și despre verile petrecute de el în satul lui natal unde lucra solitar și căuta vestigii care să ateste rolul unor oameni de demult care au trăit sau doar au trecut prin acele locuri. Era încrezător în munca lui și gândea că atunci când va ieși la pensie va avea timpul material să scrie și o carte despre rezultatele cercetărilor sale de o viață.
Colegul Gelu APOSTOL are  talent de poet și cu diferite ocazii a scris poezii. Mă mândresc cu faptul că la două zile importante ale vieții mele el mi-a scris câte o mică poezie, lucru pe care l-am apreciat în mod deosebit. 
Gelu APOSTOL a parcurs toate etapele specifice unui stagiu doctoral și în anul 1980 a susținut teza de doctorat coordonată de profesorul doctor docent Constantin IONESCU de 238 pagini, intitulată Procedee de automatizare a analizei fluxurilor informaționale pentru proiectarea sistemelor informatice în economie și îmi aduc aminte că profesorul Gheorghe BOLDUR care era membru în comisie, a scris un catren din care îmi amintesc doar faptul că a zis că autorul tezei a făcut muncă de apostolat, pornind de la numele autorului tezei. De asemenea, îmi aduc aminte că Gelu APOSTOL în timpul stagiului doctoral prezenta la sesiuni științifice rezultatele sale și specialiștii le primeau cu mare interes căci ele puneau bazele analizei automate a indicatorilor definiți în formularele care alcătuiau fluxurile informaționale din economie și care aveau un rol fundamental în optimizarea nivelului birocrației.
După anul 1990, profesorul Gelu APOSTOL a lucrat în colectivul de Programarea calculatoarelor coordonat de profesorul Ion Gh. ROȘCA și împreună cu colegii de acolo au realizat numeroase cărți de programare, care au fost publicate preponderent  în Editura ASE. După începerea colaborării cu Facultatea De Administrarea Afacerilor cu predare în limbi străine, profesorul Gelu APOSTOL a realizat cursuri de birotică în limba franceză, care s-au bucurat de un real succes printre studenți.
Nu vreau să scriu despre modul brutal și nefiresc de întrerupere a activității profesorului Gelu APOSTOL prin aplicarea mecanică a legii 1/2011, dar el a găsit puterea de a merge mai departe, căci este un om puternic și micimile unor oameni nu-l doboară, ci îl fac mai puternic să-și realizeze proiectele de-o viață.

(14 ianuarie 2023)

Thursday, January 12, 2023

1.000 de oameni care m-au impresionat: Iulian SATRAN

Iulian SATRAN era inginer de sistem în Centrul de calcul al ASE, în vremea când eu mi-am început activitatea mai întâi de analist acolo în decembrie 1970. Stătea la un birou mititel, parcă avea numărul 105 și acolo nu era prea cald, că iarna inginerul Iulian SATRAN stătea îmbrăcat cu o haină de blană, un Delon, cum se zicea în epocă.
Pe vremea aceea nu exista internet ca acum, iar documentația despre calculator nu era accesibilă oricui și cei care aveau acces la acea documentație dacă puneau mâna pe ea, nu o scăpau din mână, căci era șansa lor de a fi importanți și de a rămâne importanți, căci lumea ar fi apelat la ei să dea asistență, căci numai cine avea documentația știa să depaneze corect programele, care erau bântuite de tot felul de erori, căci programatorii din vremurile acelea, nu erau ca programatorii din ziua de azi, căci nici limbajele și nici compilatoarele de atunci nu erau ceea ce sunt limbajele de programare și compilatoarele din ziua de azi.
Când am rulat niște programe, am avut niște erori și mi-a fost destul de greu să accept cum diferiți indivizi care avuseseră acces la documentație îmi vorbeau de sus, doar că citiseră câteva pagini. Cineva mi-a zis că cel mai bine era să merg la inginerul Iulian SATRAN că el mă va lămuri.
Aveam un pic de teamă să merg la inginerul Iulian SATRAN, căci el era o somitate în ale ingineriei de sistem și de departe era cel mai priceput. Nu exista niciun secret al calculatorului IBM 360 pentru acest om. Mi-am luat inima în dinți și am mers la el. Aveam imprimanta unde dădusem opțiunea OBJ și mi se listase ceea ce compilatorul genera ca secvențe de program scrise în limbaj de asamblare. Sub acele secvențe se aflau conținutul celor 16 registre ale calculatorului.
Am bătut la ușă, al intrat, am salutat. Inginerul Iulian SATRAN lucra la ceva. Am așteptat. S-a ridicat de la birou și a venit spre mine. Eram destul de temător că-l deranjez pe acest om atât de ocupat cu chestiuni mai importante decât ceea ce aveam eu, credeam. M-a întrebat care este problema. Am arătat imprimanta. Iulian SATRAN a luat un pix cu pastă și mi-a arătat pas cu pas ceea ce face. Era foarte clar ceea ce spunea. M-a atenționat că mă învață cum să localizez eroarea și s-o fac singur din acea clipă încolo. A încercuit conținutul unui registru. A încercuit o secvență dintr-un șir tipărit la imprimantă. A făcut o scădere în baza 16 și mi-a zis că a obținut deplasarea. A plimbat pixul pe textul obiect generat de compilator până a găsit acea deplasare. În acest fel a stabilit instrucțiunea care-mi producea durerea de cap și care făcea ca programul să nu finalizeze execuția. Era acolo și un cod. Cu mâna lui, inginerul Iulian SATRAN a scris câteva codurio și cauze asociate lor, acele coduri corespundeau celor mai frecvente erori. Așa l-am cunoscut eu pe Iulian SATRAN, cel care după câțiva ani a plecat în Israel și a lucrat în informatica de vârf, căci era un specialist adevărat, căruia niciunul din Centrul de calcul al ASE nu-i sufla în ciorbă.

(12 ianuarie 2023)

Wednesday, January 11, 2023

1.000 de oameni care m-au impresionat: Valer ROȘCA

În vremurile de demult, studenții din diferiți ani de studii din aceeași facultate și din aceeași secție, care erau căminiști, erau repartizați la același cămin. Întâmplarea a făcut ca în anul al IV-lea de facultate să stau în căminul de studenți SAHIA de lângă Grădina Icoanei , unde camerele erau foarte mari de cel puțin 16 paturi și am stat în cameră chiar cu Valer ROȘCA, care era student în anul al V-lea tot la secția de Mecanizare și Automatizare a calculului Economic, unde eram și eu student. El era mai mare cu șase ani decât mine. Lucrase în producție înainte de a veni la facultate. Așa erau vremurile atunci.
Mi-am dat seama că este un student special după modul în care se comportau față de el ceilalți studenți din anul al V-lea de la celelalte secții cu care stăteam în cameră. El stătea la bibliotecă și acolo lumea mergea să învețe nu să stea la taclale. La o ședință din Aula Magna, au fost nominalizați șefii de promoție și Valer ROȘCA era șef de promoție al primei promoții de absolvenți de la secția de Mecanizare. În anul următor, Valer ROȘCA a devenit asistent stagiar în Catedra de Cibernetică Economică și l-am avut asistent la seminariile de Analiză numerică. M-a impresionat dorința sa de a ne face să înțelegem lucrurile care se prezentau și se vedea că el muncește mult să pregătească seminariile, căci nu era puțin lucru să conducă un proaspăt absolvent, seminariile pentru niște studenți din ultimul an de facultate. 
Ceva mai târziu, după ce și eu am devenit asistent universitar, s-a constituit un grup de lucru format din Valer ROȘCA, Constantin APOSTOL, Ion Gh. ROȘCA și Ion IVAN, adică eu, grup de lucru care s-a apucat să lucreze la elaborarea unor materiale didactice. Noi am stabilit niște standarde înalte de lucru și am muncit cu toții din greu și în acest fel au ieșit din mâinile noastre câteva cursuri universitare, de care și acum sunt mândru. Tot ce am scris era verificat prin programe rulate la calculator. Fiecare cuvânt scris în curs era cântărit de fiecare în parte și apoi de toți laolaltă. Era entuziasmul tinereții și dorința noastră de a face lucrurile foarte bine. Echipa noastră nu avea cum să fie altfel, din moment ce Valer ROȘCA și Ion Gh. ROȘCA fuseseră șefi de promoție și ridicaseră ștacheta calității foarte, foarte sus. Eu ca absolvent cu media de 9,71 mă consideram un pigmeu pe plantație lângă cei doi monștrii sacri ai informaticii.
Anii au trecut și drumurile noastre s-au despărțit, căci Valer ROȘCA a plecat din ASE după 1989 la Universitatea Lucian BLAGA din SIBIU unde a fost șef de catedră și decan și a avut rezultate de excepție în munca lui. Se verifica faptul că un om care este foarte bun azi, tot foarte bun va fi și mâine și poimâine și câte zile va avea el. Valer ROȘCA a absolvit și Facultatea de Matematică de la Universitate.
Mulțumesc bunului Dumnezeu că mi-a dat șansa să lucrez în plan profesional cu Valer ROȘCA, care era un tânăr ardelean sistematic, exigent și foarte serios, căruia nu-i scăpa niciun detaliu și care avea vorba calmă, rară și măsurată, ceea ce însemna că ulciorul trebuie să meargă la apă de ori de câte ori e nevoie, dar cel care-l ține de toartă să fie cu mare băgare de seamă, căci dacă se sparge, un altul nou nu mai ai de unde să faci rost.
În anul 2012 Departamentul de Informatică și Cibernetică Economică - DICE, a decis în unanimitate să acorde diploma și medalia Grigore MOISIL lui Valer ROȘCA, recunoscând în acest fel meritele sale incontestabile în dezvoltarea învățământului de informatică economică în țara noastră cu ocazia desfășurării lucrărilor Conferinței Internaționale de Informatică Economică. prezentarea activității profesorului Valer ROȘCA se află în revista Informatica Economică, vol. 16, nr. 4, 2012, pag. 5 -6.


(11 ianuarie 2023)

Monday, December 12, 2022

Foaia de programare

În vremurile de început ale programării calculatoarelor, instrucțiunile programelor se scriau pe foi de programare. O foaie de programare era o foaie A4 care era tipărită cu 25 de linii și 80 de coloane. În fiecare mic dreptunghi se scria un caracter. Dacă aveam un program cu 250 de linii sursă, trebuia să completez instrucțiunile pe 10 foi de programare.

Fiecare linie de pe foaia de programare se concretiza printr-o cartelă perforată. Deci, programul de 250 de instrucțiuni, devenea 250 de cartele perforate, la care se mai adăugau câteva cartele de control, iar toate cartelele  erau citite de un echipament al calculatorului și intrau în fluxul de analiză și de execuție dacă nu existau erori de compilare și de editare de legături.



Era foarte important ca scrierea să fie inteligibilă, ca instrucțiunile să fie corecte și ca perforarea cartelelor să se facă, de asemenea, corect. La câte programe am scris și la câte cartele perforate am dus la dispecerat pentru a-mi fi rulate pe calculator și la câte incidente am avut, nu mi-ar ajunge un roman în cel puțin cinci volume, fiecare de 500 de pagini, căci multe situații bizare s-au întâmplat...

Comparativ cu situația de acum în care programul nici nu se mai schițează pe o bucată de hârtie și se trece direct de a-l scrie, exact cum un compozitor își scrie partitura ajutându-se de pian, în vremurile de demult, orice greșeală însemna pierdere de timp, căci trebuia să aștepți să vină rândul programului tău pentru a fi citite cartelele și a fi prelucrate informațiile citite din ele.



(12 decembrie 2022)