1.1. Limbaje si masini virtuale
Calculatorul numeric (CN) reprezinta un sistem fizic capabil sa rezolve
probleme prin executia unor instructiuni primite sub forma unui program.
Aplicatiile derulate pe CN, respectiv:
1. prelucrari de date;
2. prelucrari de informatii;
3. prelucrari de cunostinte;
4. prelucrari inteligente (inteligenta artificiala)
pot fi ilustrate prin structura piramidala de mai jos.
1. Spatiul datelor. Materialul prelucrat la baza piramidei poate fi
considerat ca un spatiu de date mutual independente. Acest spatiu care este
cel mai mare spatiu al obiectelor prelucrate in CN include caractere,
simboluri si/sau reprezentari multidimensionale ale acestora, numere in
diverse formate.
2. Spatiul informatiilor. Termenul de informatie se asociaza in acest
context unei colectii de date conectate printr-o anumita relatie sau structura
sintactica (sintaxa reprezinta un set de reguli care guverneaza alcatuirea
Prelucrari
de date
Prelucrari de
informatii
Prelucrari de
cunostinte
IA
Creste volum
Creste de prelucrare
complexitate de
prelucrare
Fig. 1-1. Structura piramidala a tipurilor de prelucrari
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 3 / 39
propozitiilor intr-un limbaj). Spatiul informatiilor se constituie intr-un
subspatiu al datelor.
3. Spatiul cunostintelor. In cadrul acestui spatiu, care formeaza un
subspatiu al spatiului informatiilor, informatiile sunt legate intre ele
printr-o structura semantica (semantica reprezinta un set de reguli
care permit atribuirea de intelesuri propozitiilor intr-un limbaj)
4. Spatiul prelucrarilor de tip inteligenta artificiala. In cadrul acestui
spatiu (subspatiu al spatiului cunostintelor) se lucreaza cu baze de
cunostinte, reguli de inferenta (rationament) sau cu alte mijloace
specifice domeniului inteligentei artificiale.
Dupa cum se va vedea toate calculatoarele realizate pana in prezent
evolueaza pe baza unui program anterior memorat, program realizat sub
forma unei secvente de instructiuni aferente unui limbaj artificial. In aceste
conditii se poate spune ca pana in prezent nu a fost realizat un calculator
sub forma unui sistem inteligent care gandeste independent.
In ceea ce priveste limbajele de programare acestea pot fi mai
apropiate de masina care le executa sau de utilizatorul uman. Gradul de
apropiere se cuantifica in nivelul de perceptie al respectivului limbaj si in
capacitatea de manevrare a instructiunilor aferente.
Componentele fizice ale unui CN (circuitele electronice) nu pot
recunoaste si executa decat un numar limitat de instructiuni. Instructiunile
care pot fi intelese si executate direct (fara a necesita translatare sau
interpretare) sunt instructiuni masina iar limbajul corespunzator este
limbajul masina pe care il vom nota L1. Limbajul L1 cu toate ca permite
comunicarea utilizatorului cu masina este greu de folosit, iar in aplicatiile
de dimensiuni mari chiar imposibil. In aceste conditii este necesara crearea
unui nou limbaj, pe care il vom nota cu L2, mult mai apropiat de modul
natural de gandire si de operare al omului.
Din cele prezentate rezulta ca utilizatorul poate scrie programe atat in
L1 cat si in L2, dar calculatorul va executa intotdeauna instructiuni
aferente limbajului L1 pentru care a fost proiectat fizic. Pentru executia
unui program scris in limbajul L2 exista doua tehnici si anume:
1. translatarea (traducerea) care presupune inlocuirea fiecarei
instructiuni din L2 cu instructiuni L1, rezultand un program in L1
care va putea fi executat direct de masina;
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 4 / 39
2. interpretarea care presupune analizarea fiecarei instructiuni din
programul scris in L2 si executia ei printr-o secventa echivalenta
de instructiuni din L1.
Avand in vedere ca utilizatorul lucreaza cu o masina careia i se
adreseaza in L2 dar care executa in L1, sa o numim masina virtuala
pentru a o deosebi de masina reala careia utilizatorul i se adreseaza in L1,
iar executia se face tot in L1. In general o masina virtuala este o masina
capabila sa execute programe scrise in limbaje de nivel superior celui
accesibil nivelului fizic. Ratiunea de a fi a masinii virtuale rezulta pe de o
parte din dificultatea realizarii fizice a unei masini capabile sa execute
direct programe scrise in L2, iar pe de alta parte, din dificultatea utilizarii
directe a limbajului L1.
Daca si programarea in L2 este dificila se poate crea un alt limbaj L3,
executia unui program scris in L3 putandu-se realiza prin aceleasi doua
tehnici, respectiv:
1. traducerea programului intr-un program echivalent scris in L2;
2. interpretarea fiecarei instructiuni din L3 prin instructiuni din L2.
Se poate spune ca masina virtuala avand limbajul L3 are la baza
masina virtuala cu limbajul L2. Metoda se poate extinde pentru diferite
limbaje si masini din ce in ce mai performante, numite in literatura de
specialitate simplu niveluri.
Un calculator alcatuit din n niveluri conceptuale poate fi vazut ca n
masini virtuale distincte fiecare masina avand propriul sau limbaj.
Programele scrise in L2, L3, ,Ln trebuie sa fie interpretate de un
interpretor avand un nivel mai mic sau sa fie translatate (traduse) intr-un
limbaj inferior. Programatorul care are programele scrise pentru o masina
virtuala de nivelul n nu este interesat de translatoarele sau interpretoarele
aflate la un nivel inferior.
Calculatoarele actuale constau din sapte niveluri conceptual ilustrate
in fig. 1-2, la extreme situandu-se nivelul logic digital respectiv nivelul
orientat pe aplicatie.
Nivelul 0 - nivelul logic digital. Acest nivel este realizat fizic din
circuite logice dintre care poarta logica este elementul fundamental. Fiecare
poarta dispune de una sau mai multe intrari si intoarce ca rezultat valoarea
unei functii logice simple. Acest nivel executa instructiunile limbajului
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 5 / 39
microprogramat (specifice nivelului 1), care actioneaza asupra nivelului 0
ca niste comenzi.
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.