Thursday, November 9, 2017

Limbaje de descriere

Limbajele de descriere sunt construcții făcute de diferite persoane care și-au propus niște formalizări ce permit înțelegerea neambiguă a unor reguli și texte, ca toată lumea să procedeze în același fel ori de câte ori este nevoie. Există limbaje pentru descrierea:
- semnificației instrucțiunilor din limbajele de asamblare;
- sintaxei limbajelor evoluate;
- proprietăților pentru structuri de date;
- tipurile de constante;
- specificațiilor de programare;
- ecuațiilor și expresiilor analitice de orice fel;
- algoritmilor pentru a se scrie rapid programe.
Dacă se dorește descrierea unei instrucțiuni ASSEMBLER se vor folosi parantezele () pentru a marca un conținut de registru notat cu Ri sau de zonă de memorie notată cu Mi. v înseamnă vechi, n înseamnă nou, ct înseamnă constant, adică rămâne nemodificat.
pentru instrucțiunea de adunare
AR Ri,Rj
se va utiliza descrierea:
(Ri)n := (Ri)v + (R j)v și (Rj)ct
se citește astfel: noul conținut al registrului Ri se obține din vechiul conținut al registrului Ri la care se adaugă vechiul conținut al regostrului Rj, iar conținutul registrului Rj nu se modifică. Limbajul de descriere are multe reguli, inclusiv pentru a fi precise celelalte moduri de adresare, lucrul cu măștile, indicatorii de condiție, adică tot tacâmul.
Pentru descrierea de algoritmi există schemele logice care tot un fel de limbaj de descriere sunt.
Pentru descrierile de sintaxă ale limbajelor de programare sunt descrieril BNF  este acronim de la Backus-Naur Form. Când se prezintă limbajele de programare folosind BNF cu siguranță nu va exista nicio eroare de interpretare a sintaxei de către programator. Acolo apar elemente de recursivitate foarte clar specificate.
Pentru a defini un număr întreg fără semn se procedează astfel:
<întreg> := <cifră> | <întreg><cifră> | <cifră><întreg>
Numărul 973  este întreg fără semn pentru că este format din cifra 9 care este ea însăși un număr. Întregul fără semn 9 este urmat de cifra 7 și împreună formează un intreg fără semn. Acest din urmă întreg fără semn este urmat de cifra 3 și împreună formează un întreg fără semn.
Istoria informaticii românești consemnează nenumărate tentative de creare a unor limbaje de descriere, dar care nu s-au impus în practică pentru că erau foarte greoaie.
Istoria informaticii românești cunoaște limbajul LDA - Limbaj de Descriere a Algoritmilor dintr-o carte elaborată de prolificul FORTRAN-ist Stelian NICULESCU și o modalitate de formalizare a descrierii instrucțiunilor unui limbaj de asamblare și aici mă refer la ASSIRIS din cartea lui  CATONA, POPESCU și TEODORESCU dedicată calculatorului FELIX C 256, unde se propunere un limbaj de descriere a limbajului de asamblare ASSIRIS.  Cartea lui NICULESCU este referită prin:

  • Stelian NICULESCU - Algoritmi : Limbaj pentru Descrierea Algoritmilor, Editura Tehnică Bucureşti, 1981.

Cartea despre ASSIRIS este referită prin:
  • CATONA, Cristian POPESCU și Alexandru TEODORESCU - Sistemul Felix C-256. Limbajul Assiris, Editura Academiei RSR, București, 1974, 447 pg.
Aș fi foarte încântat să mai știu și alte cărți sau articole care conțin astfel de limbaje de descriere realizate pe pământ românesc, pentru că ar fi chestii teoretice, care nu necesită o industrie în spate și nici echipe de programatori de top care să dezvolte nu știu ce compilator sau nu știu ce sistem de operare sao oricare altă sofisticăreie software.


(10 noiembrie 2017)

No comments:

Post a Comment