Extras din curs
4.2. Limbaje si masini virtuale
Calculatorul numeric (CN) reprezinta un sistem fizic capabil sa rezolve probleme
prin executia unor instructiuni primite sub forma unui program.
La nivelul unui CN pot fi efectuate:
1. prelucrari de date;
2. prelucrari de informatii;
3. prelucrari de cunostinte;
4. prelucrari inteligente (inteligenta artificiala).
Dupa cum se va vedea toate calculatoarele realizate pâna în prezent evolueaza
pe baza unui program anterior memorat, program realizat sub forma unei secvente de
instructiuni aferente unui limbaj artificial. În aceste conditii se poate spune ca pâna în
prezent nu a fost realizat un calculator sub forma unui sistem inteligent care gândeste
independent.
În 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 în
nivelul de perceptie al respectivului limbaj si în capacitatea de manevrare a
instructiunilor aferente.
Componentele fizice ale unui CN (circuitele electronice) nu pot recunoaste si
executa decât un numar limitat de instructiuni. Instructiunile care pot fi întelese si
executate direct (fara a necesita translatare sau interpretare) sunt instructiuni masina iar
limbajul corespunzator este limbajul masina pe care îl vom nota L1. Limbajul L1 cu
toate ca permite comunicarea utilizatorului cu masina este greu de folosit, iar în
aplicatiile de dimensiuni mari chiar imposibil. În aceste conditii este necesara crearea
unui no u limbaj, pe care îl vom nota cu L2, mult mai apropiat de modul natural de
gândire si de operare al omului.
Din cele prezentate rezulta ca utilizatorul poate scrie programe atât în L1 cât si în
L2, dar calculatorul va executa întotdeauna instructiuni aferente limbajului L1 pentru
care a fost proiectat fizic. Pentru executia unui program scris în limbajul L2 exista doua
tehnici si anume:
1. translatarea (traducerea) care presupune înlocuirea fiecarei instructiuni din L2
cu instructiuni L1, rezultând un program în L1 care va putea fi executat direct de
masina;
2. interpretarea care presupune analizarea fiecarei instructiuni din programul scris
în L2 si executia ei printr-o secventa echivalenta de instructiuni din L1.
Având în vedere ca utilizatorul lucreaza cu o masina careia i se adreseaza în L2
dar care executa în L1, sa o numim masina virtuala pentru a o deosebi de masina
reala careia utilizatorul i se adreseaza în L1, iar executia se face tot în L1. În general o
Introducere în cibernetica
Capitolul 4 95
masina virtuala este o masina capabila sa execute programe scrise în 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 în L2, iar pe de alta parte, din dificultatea utilizarii directe a limbajului L1.
Daca si programarea în L2 este dificila se poate crea un alt limbaj L3, executia
unui program scris în L3 putându-se realiza prin aceleasi doua tehnici, respectiv:
1. traducerea programului într-un program echivalent scris în L2;
2. interpretarea fiecarei instructiuni din L3 prin instructiuni din L2.
Se poate spune ca masina virtuala având limbajul L3 are la baza masina virtuala
cu limbajul L2. Metoda se poate extinde pentru diferite limbaje si masini din ce în ce mai
performante, numite în literatura de specialitate simplu niveluri.
Un calculator alcatuit din n niveluri conceptuale poate fi vazut ca n masini virtuale
distincte fiecare masina având propriul sau limbaj. Programele scrise în L2, L3, …,Ln
trebuie sa fie interpretate de un interpretor având un nivel mai mic sau sa fie translatate
(traduse) într-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 în fig. 1-2,
la extreme situându-se nivelul logic digital respectiv nivelul orientat pe aplicatie.
Preview document
Conținut arhivă zip
- Introducere in Teoria Calculatoarelor.pdf