Showing posts with label limbaje formale. Show all posts
Showing posts with label limbaje formale. Show all posts

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)

Saturday, October 21, 2017

Cercetările solitare

Cercetările solitare erau diferite de cercetările individuale pentru că erau desfășurate de personalități marcante, recunoscute într-o zonă a informaticii și acceptate ca ca atare, cărora li se căuta și li se găsea finanțare pentru munca lor pentru că:
- generau contacte în străinătate;
- erau deschizătoare de drumuri;
- conduceau la publicarea în mari edituri;
- creau școală în jurul fiecărei personalități.
Ideia de a construi software de prognoză era veche, numai că trebuia pusă în operă și încă la un anumit nivel, care să dea valențe concrete, ușurință în utilizare și să fie de maximă generalitate. Așa s-a întâmplat cu produsul software EMI al lui Gheorghe RUXANDA, cercetător solitar în Centrul de Calcul al ASE, care lucra într-un laborator unde toți colegii săi îl apreciau și știau că dacă lucrează la ceva, acel ceva este un lucru special. Când a ieșit pe piață cu produsul EMI, Gheorghe RUXANDA era un tânăr cercetător care realizase un produs de prelucrări de date:
- în volume foarte mari;
- independent de dezvoltator;
- estimând coeficienți la  funcții oarecare;
- construind eșantioane;
- aplicând cunoștințe avansate de econometrie.
Cercetătorul solitar Gheorghe RUXANDA a reușit să dezvolte un produs software de maximă generalitate, cu mesaje proprii, ceea ce înseamnă că a fost gândit ca un produs de clasă A fiind foarte bine testat. 
Din discuțiile cu marele inginer de sistem Iulian SATRAN am ajuns la concluzia că a dezvoltat un model de regăsire a informațiilor cu mult înaintea descoperirii arborilor B și pe care l-a implementat cu mult înaintea acestui tim de structură de date folosită în regăsirea rapidă a informațiilor.
Fiecare dintre cei care au lucrat și mai lucrează în informatică, au secretele lor ca persoane care fac cercetări solitare, fiind convinși că vor descoperi și ei piatra filosofală, la care s-au gândit mii de ani alchimiștii și încă nu au abandonat acest vis prea frumos. Când în sesiunile științifice apar cercetări în acest sens, un oarecare nivel de delicatețe nu strică niciunui moderator pentru a nu înăbuși în fașă o ideie pe care el însuși sau cei din sală nu au înțeles-o la adevărata ei valoare, mai ales dacă vine din partea unui solitar cercetător care pe deasupra mai este și un necunoscut.
Cercetările solitare în informatică sunt uneori pepiniera ideilor geniale și nimeni nu are voie să bruscheze în vreun fel un cercetător solitar, chiar dacă el are și ceva ciudățenii sau manifestări ermetice de om neânțeles



(21 octombrie 2017)

Thursday, October 12, 2017

Cărți de informatică teoretică

Cărțile de informatică teoretică au apărut încă din zorii informaticii de la noi, pentru că cei care au înțeles noutatea domeniului au dezvoltat deja abordări în planul cercetării științifice operând cu noțiuni abstracte, nefiind legați de dotarea cu tehnică de calcul în concordanță cu exigențele lor și cu nivelul de generalitate pe care l-au abordat.
Cărțile despre gramatici generative, despre limbaje formale, despre compilatoare, despre automate finite și despre teoria informației au apărut în editurile românești cu autori români și s-au bucurat de mare succes.
  • I. CREANGĂ, C. REISCHER, D. SIMOVICI - Introducere algebrică în informatică. Teoria automatelor, Editura Junimea, Iași, 1973, 287 pg.
  • I. CREANGA, C. REISCHER, D. SIMOVICI - Introducere algebrica in informatica. Limbaje formale, Editura Junimea, Iasi, 1974, 195pg.
  • Dan SIMOVICI - Limbaje formale si tehnici de compilare, Editura Didactica si pedagogica, Bucuresti, 1978, 245 pg.
  • S. MARCUS - Gramatici și automate finite, Editura Academiei RPR, București, 1964.
  • D. VAIDA - Limbaje formale și tehnici de compilare, Editura Universității, București, 1976.
  • D. VAIDA - Algoritmi de compilare, Editura Didactica si Pedagogica, București,  1971
  • T. BALANESCU - Corectitudinea programelor, Editura tehnică, București, 1995.
  • M. FRENȚIU - Verificarea corectitudinii programelor, Editura Universitară Petru-Maior, 2001.
  • C. CALUDE - Theories of Computational Complexity, North-Holland, Amsterdam, 1988. 
  • D. L. ȘERBĂNAȚI - Limbaje de programare si compilatoare, Editura Academiei RSR, București, 1987, 345 pg. 
  • E. VASILIU - Gramatici generative și gramatici transformaționale,  vol. Lingvistica modernă în texte, redactori M. Iliescu, L. Wald, Tipografia Universităii București, 1981,  121pg. 
  • A. ATANASIU - Limbaje formale și automate, Editura INFODATA,  Cluj, 2007, 170 pg.
  • T. JUCAN  - Limbaje formale ¸si automate, Editura Matrix Rom, București, 1999
  • Gh. PĂUN - Probleme actuale în teoria limbajelor formale, Editura Științifică și Enciclopedică, București 1984. 
  • Ş. MĂRUȘTER, M. DRĂGAN – Limbaje formale, Editura Eubeea, Timișoara, 1998. 
  • E. M. POPA - Limbaje formale, Editura Alma Mater, Sibiu, 2003.
Mai era o carte cu coperți albastre pe care am cumpărat-o, parcă editată la Cluj despre Gramatici generative, de unde am învățat eu primele noțiuni de limbaje formale și de gramatici. Acolo am citit prima dată despre rezultatele lui Noam CHOMSKY. În clipa aceasta nu-mi aduc aminte despre ce carte este vorba și-mi pare nespus de rău. Cu ea aș fi început aici. Mi-au plăcut dintotdeauna rezultatele de la limbajele formale și prin anul al V-lea de facultate am gândit un limbaj formal pentru aplicații de contabilitate, care ajuta la preluarea directă din documente pentru a scrie formule contabile, era ceva de o matrice de corespondențe dintre conturi. Restul nu-mi mai amintesc, dar era ceva frumos în mintea mea de atunci. 
Cărțile de informatică teoretică sunt extrem de interesante și ele au contribuit substanțial la fondarea școlii de informatică de la noi pentru că numai practica nu ajută prea mult. Ea trebuie precedată de rezultate teoretice semnificative.







(12 octombrie 2017)