Calculatorul este un algoritmi și informații integrate structuri pe-bor, capabile să stocheze și programul vypol-nyat. Calculatorul poate fi configurat ca un dispozitiv fizic real, ceea ce se numește un computer. Dar poate fi, de asemenea, construit cu ajutorul unor programe care rulează pe un alt calculator, atunci este numit un computer-software simulat sau virtual, care constă în parte din hardware și parțial a software-ului.
Marea majoritate a programelor scrise în limbile de programare la nivel înalt pro-, în mod semnificativ diferită de limba mașină reală a computerului. Teoretic, puteți crea un computer hardware-ul folosind SEZONUL-un nivel al unei limbi ca o mașină, dar ar fi foarte dificilă și costisitoare. În plus, ar fi extrem de inflexibil ca un hard de calculator (dar este posibil) pentru a utiliza în combinație cu Dru-gimi limbaje de nivel înalt. O soluție mai practică - hardware pentru a pune în aplicare limba este foarte scăzut, care vă va oferi, completează operațiunile elementare cele mai comune și oferă un plus de al treilea program de calculator pentru a interacționa cu programe scrise în limbaje de nivel înalt.
Deci, se pune întrebarea: cum să organizeze punerea în aplicare a unor astfel de programe pe o anumită mașină? Există două soluții principale pentru această problemă.
Broadcast (compilare). Această metodă de programe de traducere scrise în limbaje de nivel înalt, în programe echivalente, suntem în limbaj mașină utilizată de computer. După aceea, interpretul construit în hardware-ul microprocesorului execută direct în programul de tradus cod mașină. Avantajul acestei metode - foarte rapid program de a executa-set după finalizarea procesului de traducere.
Radiodifuzorul - un procesor de limbă care primește programul pe o limbă sursă ca date de intrare-TION, și emite echivalentul în programul lor funcțional STI, dar pe de altă parte, așa-numitul limbaj obiect (care poate fi, de asemenea, un nivel arbitrar ).
Assembler - un traducător a cărui limbă sursă este o reprezentare simbolică a codului mașină (asamblare), iar limbajul obiect este un anumit tip de limbaj mașină a unui computer adevărat.
Compilatoare - compilator pentru care sursa este un limbaj de nivel înalt, și limba obiect aproape de limbaj mașină a unui computer adevărat. Este fie limbaj de asamblare sau orice versiune de limbă a mașinii. De exemplu, programele C sunt compilate, de obicei, într-un program în limbaj de asamblare, co-torye apoi traduse în limbaj mașină de asamblare.
Preprocesor (un procesor macro) - un compilator, limba sursă, care este o formă extinsă a unui nivel înalt de limbă (de exemplu, Java sau C ++) și limbajul obiect - versiunea standard a limbii. Programul de obiect creat de preprocesor, gata pentru traducerea și implementarea procesoarelor convenționale limbaj original standard.
Principalul dezavantaj este pierderea informațiilor program de difuzare. În cazul în care un program are un bug, este adesea dificil de a descuraja-parts, unele dintre operatorii programului în limba originală vypol-specimen a fost și ce obiecte folosite în ea date. Mai mult decât atât, din moment ce operatorul de limbaj de nivel înalt conține mult mai multe informații decât instrucțiunile de limbaj mașină, forma executabilă a programului în luna mai, este în memoria unui spațiu mult mai mult.
Interpretare (software de simulare). Această metodă atunci când se utilizează programul (interpretul) care rulează pe calculatorul Appa-PATH, a crea un mașini de calculator virtuale NYM limbaj de nivel înalt. Interpret decodează și vypol-nyaet fiecare furnizor de program de limbaj de nivel înalt într-o secvență co-responsabil și a concluzionat datele rezultate-tiruyuschih definite de acest program.
Avantajul acestei abordări - ușurința punerii în aplicare a multor operatori-talkie de depanare la programul sursă, ca toate erorile de co-comunicare care apar in timpul executiei, se poate referi la sursa modulelor de program.
Cu toate acestea, pentru că trebuie să plătească de mai multe ori necesitatea de a decoda același operator, în cazul în care este pe-de exemplu, apare într-un ciclu sau o parte din rutina de asteptare, ceea ce reduce semnificativ viteza programelor interpretate (10 100).
implementare sistem mixt. Cel mai adesea, pentru a pune în aplicare limbaj de nivel înalt computerul utilizează o abordare combinată. În primul rând, programul este transmis de la forma sa inițială într-o formă care este mai convenabil pentru a transporta. Acest lucru se face de obicei prin crearea mai multor programe independente ore pe Dren, numite module. La pornire Nez-dependența este adesea combinat cu un set de programe pentru a vă sprijini, completează implementarea în funcționarea sistemului simulat-software (interpretat-Rui). Acest lucru duce la crearea de forma executabilă a programului, care operatorii sunt decodate și executate într-un mijloc de interpretare.