<docere>http://www.docere.ro/ |

Limbaje şi calculator? (principii metodologice)
Pregătirea informatică obişnuită în învăţământul nostru, se bazează încă pe generalităţi introductive despre calculator şi pe descrierea prin diagrame de sintaxă sau pseudocod a unui limbaj de nivel înalt (a fost Pascal, acum e C++); în esenţă, avem două formule - una falsă, informatică = algoritmică + point-and-click şi a doua pomenită peste tot programe = algoritmi + structuri de date, dar instituţionalizată la cel mai superficial nivel de înţelegere (nivelul pseudocodului).
Principiul practicat este fals şi îngust: izolarea limbajului faţă de calculator - limbajul n-ar fi altceva decât un instrument pentru descrierea algoritmilor (ceva mai pretenţios decât "pseudocodul").
Se împlinesc 10 ani de când mi s-a publicat Limbaje şi calculator (Ed. PETRION 1998); a fost prima încercare metodologică de a susţine că limbajele nu sunt izolate faţă de calculator - dimpotrivă, scheletul de bază al oricărui limbaj corespunde structurii tipice de CPU, precum şi posibilităţilor de corelare cu un sistem de operare.
Linia metodologică intuitivă pe care o lansam acolo avea ca idee interpretarea continuă a binecunoscutei teze "programe = algoritmi + structuri de date". Evidenţiind cu instrumentele adecvate, codul furnizat de compilator (pentru programe simple în Pascal, C, etc.), ajungem la formula (de memorie+CPU) program = zonă de cod (CS; IP) + zonă de date (DS); angajând apoi subprograme şi analizând implicaţiile către CPU, ale realizării transferului bidirecţional de control şi de parametri - se prelungeşte formula cu + zonă-stivă (SS; SP/ESP) + cadru-stivă (BP/EBP), unde valorile de bază DS, CS, SS rezultă prin corelare - asigurată de către sistemul de operare - cu mediul de execuţie (NB. ca termeni, aceste "formule" există acum şi în manualele obişnuite).
Se intuiau astfel, necesităţile care ar decurge logic din cerinţa ca microprocesorul să execute codul generat de compilator: necesitatea unor regiştri prin care CPU să poată viza separat zona de date şi zona de cod; necesitatea existenţei unui registru Instruction Pointer, pentru a accesa şi a parcurge automat zona de cod, instrucţiune după instrucţiune; necesitatea ca sistemul de operare să aloce o zonă de memorie în care programul aflat în execuţie să poată păstra adrese sau parametri de comunicare între subprograme şi necesitatea ca CPU să dispună de instrucţiuni corespunzătoare folosirii acestei zone; etc.
Această schemă de desfăşurare evidenţiază treptat structura tipică de CPU şi mecanismele de funcţionare sau de programare asigurate - pentru toate limbajele - de această structură. Cunoaşterea acestor elemente fundamentale asigură şi o însuşire "unitară" a limbajelor (nu a unuia…), şi o mai rapidă şi uşoară însuşire (fiindcă toate limbajele iată că au o aceeaşi bază!), şi o mai eficientă folosire (şi nu doar a unuia, ci a mai multor limbaje, după caz); în plus, să zicem - nu este necesară, o cunoaştere amănunţită; dar este necesară pentru orice programator, înţelegerea principiilor de structură şi funcţionare a CPU.
ORAR orarul şcolii
SitSco situaţie şcolară
ŞAH prin corespondenţă
doChess a Javascript chess engine
doPGN a Javascript PGN-browser
Cal++ ambiţiile Calului
aşaAzis momente lingvistice
Comentarii
—cum ar trebui calculată Media şcolară?
completely rethink the browser:
Google chrome