Hardware și software structura de cele mai multe calculatoare moderne - mai multe niveluri. Detalii privind nivelurile inferioare sunt ascunse pentru a oferi un model simplu pentru nivelul superior. Acest principiu este o abstracție - un proces prin care hardware și software proiectanții trebuie să facă față complexității sistemelor informatice.
La cel mai scăzut nivel - circuite electronice - computerul este foarte simplu. Circuitul electronic înțelege doar două comenzi: on și off, simbolic notate cu cifrele 1 și 0. La acest nivel de comunicare cu mașina trece prin lanțurile de zero-uri și altele. Echipa - acest lucru este de înțeles pentru setul de procesor de cifre binare sau biți (biți). Astfel, comanda este pur și simplu un număr într-un sistem numeric binar sau un număr binar. Calculatoarele sunt numite digitale, deoarece limbajul mașinii pentru a se referi la ambele comenzi și date utilizate numere.
După ce, la un moment dat, programatorii trebuie să „comunice“ cu calculatoare în limba de numere binare. Nu este atât de ușor, prin urmare, a fost inventat de un nivel mai ridicat de abstractizare - limbaj de asamblare, care este o formă simbolică de limbaj de calculator binar. Assembler este un program care traduce reprezentarea simbolică a comenzilor în formă binară.
Pentru majoritatea programării în limbaj de asamblare - de asemenea, nu destul de natural, prin urmare, a fost creat de un nivel mai ridicat de abstractizare - un limbaj de nivel înalt (HLL). În prezent, există sute de astfel de limbi; cel mai faimos dintre ele - Basic, C, C ++, Cobol și RPG. Programul are ca intrare un text într-unul din limbaj de nivel înalt și o traduce în declarații limbaj de asamblare, numit un compilator.
Ilustrarea mai multe niveluri de abstractizare - scrierea de programe în limbaj de nivel înalt. Compilatorul convertește programul Java în limbaj de asamblare, care se traduce apoi comenzile în cod binar de înțeles de către procesor. Rețineți că unele compilatoare genera comenzi direct în limbaj mașină, ocolind nivelul de asamblare.
Înainte de a executa programul pe Hll și compilator de asamblare traduce în instrucțiuni limbaj mașină. Această operație este efectuată o dată, iar noul început al programului nu este necesar să-l repete, în cazul în care codul sursă al programului nu este schimbat. Având mai multe niveluri vă permite să ascundeți detaliile limbajului mașinii de bază de programator și să ofere o interfață simplă și eficientă.
Conceptul multi-nivel poate fi de asemenea utilizat în echipamente de calculator. Multe procesoare, inclusiv familia microprogramare utilizate Intel. În microprogrammable set de instrucțiuni mașină de utilizat un nivel chiar mai mic. Pentru mapare între nivelurile superioare și inferioare microprogramare folosește emularea. Instrucțiuni mașină care sunt selectate și executate de către una ca o secvență de instrucțiuni de la un nivel inferior. Pentru a converti instrucțiunile mașinii într-o formă acceptabilă pentru firmware-ul, un pas separat de compilare.
Similar cu interpretarea programelor de emulare. Interpretul programului selectează o singură instrucțiune și execută secvența echivalentă a instrucțiunilor de nivel inferior. Unele dintre cele mai noi dispozitive nucleare explozive utilizate în calcul distribuit, cum ar fi Java, cum sunt proiectate pentru a fi ușor de interpretat. Cele mai multe limbi de comandă și interpretabil. Intră «dir» la prompt DOS de pe orice PC și conținutul directorului va fi afișat. Dacă apăsați Enter, DOS linie de comandă interpret menționată de comandă introdusă, iar apoi executa o secvență de instrucțiuni necesare pentru punerea sa în aplicare. Un astfel de interpret de comandă disponibilă în majoritatea sistemelor de operare. Interpretarea microprogrammable mașină de întreținut, de obicei, echipamente speciale. Firmware-ul pentru a distinge această formă de interpretare este numit emulator de hardware.
De obicei, un set de arhitectură de sistem de calculator de comenzi este văzută ca o interfață între hardware și software-ul cel mai scăzut nivel. În acele zile, atunci când este formulat Hasson citată mai sus definiția arhitecturii calculatorului, programarea nu a fost încă folosit NED. Astăzi, o definiție mai adecvată a termenului ar fi „caracteristici ale sistemului din punct de vedere al compilatorului,“ ca de astăzi, puțini programatori trebuie să se confrunte cu programe în cod mașină.
Având în vedere numeroasele niveluri de abstractizare, mai corect să spunem că computerul are mai multe arhitecturi, deși binar arhitectura set de instrucțiuni, în cele mai multe cazuri, continuă să joace un rol major. Când spunem că un computer este capabil să execute programe scrise pentru alte calculatoare neschimbate, de obicei, aceasta înseamnă că prima poate efectua coduri binare (binaries) cealaltă, și, prin urmare, pentru a transfera programele de la primul la un al doilea este necesară recompilarea lor. Cu alte cuvinte, binar limba mașină a computerului este susținută direct de către celălalt calculator.