CATEGORII DOCUMENTE |
Modelul
functional al unui Calculator Numeric
Exista un nivel intermediar intre hardware si software, denumit firmware, care exista din
software incorporat in hardware in momentul fabricatiei calculatorului. Programele care
controleaza direct resursele hardware, care nu se schimba atata timp cat structura hardware nu
se schimba si programele care trebuie sa fie prezente in calculator imediat dupa alimentarea cu
energie a calculatorului,constituie partea de firmware
De fapt partea de hardware si cea de software sunt echivalente. Orice operatie efectuata prin software poate fi implementata direct in hardware si orice instructiune efectuata prin hardware, poate fi simulata prin software.
La ora actuala exista circuite specializate care efectueaza calcule cu numere reale cu precizie foarte mare, procesoare grafice care printr-o simpla comanda executa o transformare a unei figuri complexe etc.
Modelul functional prezentat in figura anterioara reflecta atat organizarea sistemului de calcul cat si functionarea acestuia privind fluxul informatiilor plecand de la programul utilizatorului pina la obtinerea informatiilor dorite.
In literatura de specialitate exista modele similare cu acesta, altele sunt destul de diferite. In acest model s-a urmarit pe de o parte aspectul functional, nivelele ierarhice sunt astfel alese incat sa reflecte cat mai bine fluxul datelor si actiunilor in sistemele moderne de calcul iar pe de alta parte aspectul didactic, fiecare nivel ierarhic este obiectul unor cercuri clar delimitate, intercalate prin continut si planificare in timp.
NIVELUL 1. - Dispozitivele si circuitele electronice reflecta atat gradul de integrare tehnologica cat clasa de performante in care se incadreaza calculatorul. Astfel, un calculator bazat pe circuite ECL (circuite logice cu cuplaj prin emitor) va avea o viteza de prelucrare ridicata, destinat unor aplicatii complexe, cu multe calcule. Un calculator bazat pe microprocesoare 80386 si 80387 si memorii de 1-2 biti pe pastila va fi un calculator performant realizat intr-o tehnologie avansata.
NIVELUL 2. - Unitatile functionale reflecta intr-o buna masura modularitatea sistemului, pozitionarea si implementarea functiilor primitive in unitati functionale avind in vedere criterii functionale, constructive, si aspecte privind testabilitatea. La acest nivel inca nu este posibila programarea calculatorului. Este posibila insa microprogramarea. Diferite unitati functionale contin programe implementate sub forma de firmware. Astfel unitatea centrala de prelucrare poate contine programe firmware pentru controlul componentelor din care este alcatuita, programe pentru mentinerea configuratiei de baza, pentru cazul de timp real al calculatorului, programe de depanare, etc. Un canal de I/E pentru disc include programe de testare a subsistemului de discuri magnetice, programele de I/E de nivel scazut, programarea circuitelor integrate pe scara larga care intra in componenta sa.
NIVELUL 3. - Masina fizica reprezinta, impreuna cu echipamentele de I/E, partea de hardware propriu-zisa a calculatorului. Acest nivel reflecta structura si organizarea interna a calculatorului, modul de interconectare si interactiunile dintre unitatile functionale, fluxul datelor de I/E. De asemenea acest nivel reflecta si arhitectura calculatorului asa cum este el vazut de un programator la nivelul functiilor primitive .
NIVELUL 4. - Masina de baza reprezinta calculatorul propriu-zis. Nucleul sistemului de operare trebuie vazut mai mult ca firmware decat ca software si este format dintr-o colectie de programe orientate pe masina fizica si care ofera programatorului de sistem o masina de baza mai evoluata, uniforma si stabila in timp, primind modelul de acces la functiile primitive. Astfel modificarile din nivelele 1, 2 si 3, vor fi preluate de acest nivel fara a fi simtite de nivelele ierarhice superioare. Acest nivel asigura in principal functiile de I/E de baza (BIOS la PC) si functii de acces direct la resursele fizice pentru testarea si punerea la punct a programelor.
NIVELUL 5. - Executivul sistemului de operare reprezinta o colectie de programe de baza care asigura pe de o parte o masina cat mai eficienta si comoda de utilizat pentru programator si o utilizare cat mai eficienta a resurselor hardware si software, pe de alta parte. Principalele functii ale unui sistem de operare sunt:
- controlul incarcarii si executiei programelor, care asigura incarcarea in memoria interna a programelor preluate din memoria externa, lansarea in executie si supravegherea executiei acestora;
- operatii de I/E mai evoluate, bazate pe functiile oferite de masina de baza;
- gestiunea fitierelor, care asigura crearea intresinerea si utilizarea fitierelor de date pe suporturile externe (magnetice, optice, etc);
- gestiunea memoriei care asigura utilizarea si protectia memoriei interne in conditiile in care mai multe procese pot fi active la un moment dat in memorie
- facilitati de dezvoltare a programelor privind programarea modulara, deformarea;
- crearea, intretinerea si utilizarea bibliotecilor de programe de baza si aplicatii.
NIVELUL 6. Limbaje de programare. Fiecare limbaj are un vocabular de aproximativ 100 de cuvinte si simboluri si este bazat pe o gramatica strict definita, fara exceptii. Propozitiile dintr-un limbaj pot fi usor traduse in propozitii dintr-un alt limbaj. Operatia de conversie a unui program dintr-un limbaj in altul se numeste translatare. Programul original se numeste program sursa si este scris in limbajul sursa. Daca ar exista un procesor care sa interpreteze direct limbajul sursa nu ar mai fi nevoie de translatare. In prezent exista peste 100 de limbaje de programare clasificate dupa diferite criterii. Astfel sunt:
- Limbaje orientate masina sau limbaje de nivel scazut, care necesita din partea programatorului o cunoastere buna a arhitecturii calculatorului. Limbajul ofera facilitati de acces direct la aceste resurse, permitand dezvoltarea unor programe foarte eficiente din punct de vedere al utilizarii resurselor pe seama unui efort mai mare din partea programatorului. Limbajele orientate masina pot la randul lor sa fie clasificate in:
- limbaje masina sau limbaje obiect care implica specificarea direct in binar, otet, sau hexazecimal a instructiunilor ce se vor executa direct de catre masina fizica. Programarea in limbaj masina este rareori utilizata eventual pentru cateva instructiuni, in procesul de depanare a programelor;
- limbaje de asamblare care pot fi privite ca o reprezentare simbolica pentru limbajele masina. Instructiunile din programul sursa in limbaj de asamblare, au corespondent direct in limbaj masina. Utilizarea unor nume simbolice pentru instructiuni si posibilitatea definirii unor adrese simbolice usureaza mult programarea fata de programarea in limbaj masina. Translatarea programelor din limbaj de asamblare in limbaj masina se face de catre asamblor.
- limbaje orientate pe probleme sau limbaje de nivel inalt in care utilizatorul isi scrie programele intr-o maniera mai apropiata de modul de comunicare uzual. Detaliile interne ale arhitecturii si structurii masinii de baza sunt mult mai putin vizibile decat in corpul limbajelor de asamblare. Limbajele de nivel inalt sunt mai eficiente pentru programator dar, in general mai ineficiente pentru masina. Programele scrise in limbajele de nivel inalt in general sunt compilate, translatate de catre compilatoare, direct in limbaje obiect pentru a fi excutate de catre masina de baza. La randul lor limbajele de nivel inalt pot fi clasificate dupa diferite criterii, astfel:
- limbaje orientate pe calcule stiintifice: FORTRAN, APL, BASIC;
- limbaje pentru calcule economice: COBOL, SNOBOL
Un alt model de clasificare ar fi dupa modul in care programatorul verifica actiunile ce trebuie efectuate in cursul executarii programului. Astfel sunt:
- limbaje imperative, in care programatorul verifica, pas cu pas, ce trebuie facut pentru rezolvarea problemei respective: FORTRAN, PASCAL, C, MODULA, etc;
- limbaje declarative in care programatorul face doar o descriere, intr-o forma data a solutiei la problema, de exemplu: LISP, PROLOG, SMALLTALK.
NIVELUL 7 - nivelul aplicatiilor reprezinta nivelul cel mai important pentru utilizator. Bibliotecile de programe de la acest nivel reflecta modul in care poate sa utilizeze direct calculatorul in diferite aplicatii si usurinta cu care pot fi create noi programe de aplicatii in domenii conexe sau total noi
NIVELUL 8 - nivelul interpretorului limbajului de comanda reprezinta interfata si modul de interactiune dintre utilizatori si sistemul de calcul. Selectarea unei actiuni poate fi greoaie, introducand o serie de texte de la consola operatorului sau din contra, foarte eficienta prin simpla indicare a unei optiuni afisate pe ecranul consolei. Se observa din aceasta analiza a modelului din Fig. 1.8 ca un programator de un anumit nivel nu necesita o cunoastere detaliata a nivelelor inferioare doar daca pentru cresterea eficientei se doreste elaborarea directa a unor functii sau controlul direct al unor resurse de pe nivele inferioare.
1.4.1. MEMORIA
Memoria principala
Capacitatea memoriei unui calculator este data de numarul de octeti sau de cuvinte din care
este formata aceasta. De obicei aceasta capacitate se exprima in K octeti ( 1K = 1024) sau in
M octeti ( 1M = 1024 K) si mai nou in gigaocteti ( 1G = 1024 M). Capacitatea maxima a
memoriei adresate la un moment dat de catre un calculator este data de numarul maxim de
adrese distincte care pot sa fie generate de unitatea centrala de prelucrare. De exemplu daca
un calculator poate sa genereze adrese utilizand 16 biti atunci el va putea sa adreseze 216
adrese distincte.
Structura bloc a unui subsistem de memorie este prezentata in figura de mai jos.
Registrele de adrese (AM) si de date (DM) pot sa fie continute in subsistemul de
memorie sau fac parte din alte subsisteme care fac acces la memorie.
Registrul AM contine adresa de memorie implicata in accesul la memorie. Registrul DM
contine datele care trebuie sa fie inscrise in memorie, respectiv datele care se citesc din
memorie.
Semnalul SM este un semnal de selectie a subsistemului de memorie (intr-un calculator
pot sa existe mai multe astfel de subsisteme, eventual fiecare avand spatiul propriu de
adrese) iar S/C este un semnal care comanda tipul operatiei (de scriere sau de citire).
Descrierea functionarii subsistemului de memorie este prezentata in diagramele de timp
din figura anterioara.
In figura, cu tac s-a notat timpul de acces citire ca fiind durata dintre momentul activarii
adreselor si momentul in care datele sunt disponibile. Cu tcc s-a notat durata ciclului de citire ca fiind intervalul de timp dintre momentul in care adresele sunt activate pentru citire si momentul de timp la care se poate face o noua activare a adreselor. Cu tcs s-a notat durata ciclului de scriere ca fiind intervalul de timp dintre momentul in care adresele sunt activate pentru scriere si momentul de timp la care se poate face o noua activare a adreselor.
Se observa ca succesiunea de evenimente corespunzatoare efectuarii unei operatii de
citire sau de scriere este: stabilirea adresei implicate, generarea semnalului de selectie, stabilirea semnalului S/C, localizarea adresei in memorie, realizarea transferului de date dupa care urmeaza un interval de timp corespunzator refacerii starii circuitelor integrate de memorie pentru a fi capabile sa execute un nou acces. Se observa ca ciclul memoriei (intervalul de timp dintre doua accese la memorie) este format din doua intervale de timp: timpul de acces efectiv si timpul de refacere.
1.4.2. UNITATEA CENTRALA DE PRELUCRARE
UCP reprezinta nucleul calculatorului. Realizeaza executia instructiunilor aduse din memorie asupra unor date aduse din memorie sau obtinute de la subsistemul de intrare. Prelucrarile efectuate pot sa fie de tip aritmetic sau logic, rezultatele obtinute pot sa fie transmise la memorie sau subsistemului de iesire.
UCP contine registre care formeaza o memorie foarte rapida. Aceste registre pot sa contina date sau componente ale adreselor de memorie. Exista calculatoare pentru care unele registre au functii dedicate, adica anumite operatii se pot executa numai asupra valorilor continute in anumite registre, in timp ce la alte calculatoare orice registru poate sa fie utilizat pentru orice fel de operatie. De asemenea UCP contine un registru, denumit de obicei, registru stare program care memoreaza informatii referitoare la starea UCP, la rezultatul executiei ultimei instructiuni aritmetice sau logice, conditii de eroare, conditii care descriu modul in care
urmeaza sa se execute urmatoarele instructiuni, etc.
Executia operatiilor aritmetice si logice se realizeaza in cadrul Unitatii Aritmetice si Logice (UAL). Elementul da baza al unei UAL este un sumator paralel. Viteza de operare a UAL este practic data de performantele acestuia. In afara de sumator, UAL contine si circuitele combinationale care permit selectia operatiei aritmetice sau logice executate de catre UAL
Schema bloc a unei UAL
Din punctul de vedere al interconectarii UAL cu celelalte subansamble, de fapt din punctul de vedere al mecanismului de obtinere a operanzilor si al furnizarii rezultatului exista mai multe solutii posibile :
1. Utilizarea unei magistrale unice. Schema bloc de interconectare este prezentata in figura de mai jos.
In acest caz operanzii sunt preluati de catre UAL din doua registre temporare T1 si T2. Se observa ca incarcarea datelor in registrele T1 si T2 si transmiterea rezultatului se face prin intermediul unei magistrale locale a UCP. Sursele pentru operanzi si destinatia pentru rezultat pot sa fie reprezentate de orice registru sau locatie de memorie. Inainte de efectuarea operatiei valorile operanzilor trebuie sa fie incarcate in registrele temporare T1 si T2. Se observa ca aceasta incarcare nu se poate realiza decat secvential.
Daca sursele celor doi operanzi sunt reprezentate de locatii de memorie iar rezultatul trebuie sa se depuna de asemenea in memorie, avand in vedere ca accesul la memorie nu se poate face decat pentru citirea / scrierea unei singure date la un moment dat, timpul necesar pentru efectuarea operatiei aritmetice sau logice este dat practic de timpul necesar pentru cele 3 accese la memorie. Daca operanzii sunt disponibili in registrele UCP atunci din cauza transferului secvential al operanzilor in registrele temporare, executia instructiunii va dura mai mult decat in cazul in care exista o legatura directa intre registrele care contin operanzii si UAL.
2. Utilizarea unui registru acumulator. Schema bloc de interconectare este prezentata in
figura urmatoare.In acest caz unul dintre opereranzi este preluat intodeauna dintr-un registru
special numit registru acumulator. De asemenea rezultatul operatiei este memorat in registrul acumulator inlocuind vechiul continut. Se observa ca in acest caz numai sursa unuia dintre operanzi poate sa fie constituita de catre un registru din UCP sau de catre o locatie de memorie. Deoarece al doilea operand este preluat dintr-un registru UCP sau din registrul de date al memoriei, structura nu mai necesita utilizarea unui registru temporar. Viteza executiei instructiunilor aritmetice si logice este mai mare in acest caz deoarece la timpul necesar pentru executia efectiva a operatiei nu se mai adauga decat timpul necesar pentru pregatirea unui singur operand.
3. Interconectare UAL cu trei magistrale. Schema bloc de interconectare
este prezentata in figura de mai jos.
In acest caz fiecare operand si rezultatul circula pe alta magistrala de date. Operanzii sunt preluati direct de pe cele doua magistrale de date. Rezultatul este transmis pe cea de a 3-a magistrala. Atat sursele operanzilor cat si destinatia rezultatului operatiei pot sa fie registre ale UCP sau locatii de memorie. Se observa ca cei doi operanzi se pot obtine in paralel. In cazul in care amandoi operanzii sunt preluati din memorie durata aducerii operanzilor este similara cu aceea obtinuta pentru prima structura.
1.4.3. UNITATEA DE COMANDA
Executia unui program rezulta prin realizarea unei secvente de aduceri si executii de instructiuni din memorie. Adresa de memorie a urmatoarei instructiuni care urmeaza sa se execute este memorata intr-un registru special din UCP, registru numit contor program (CP). Cand se initiaza executia unui program, in CP se incarca adresa primei instructiuni. In continuare se va executa un ciclu de operatii care poate sa fie descris de organigrama din figura urmatoare.
Se observa ca in timpul ciclului de aducere si executie a instructiunii CP este actualizat astfel incat ori de cate ori se incepe ciclul unei noi instructiuni continutul acestui registru sa reprezinte adresa primului cuvant din instructiune. Evident instructiunile de control al executiei programului pot sa aiba ca efect actualizarea continutului registrului CP conform adresei la care se face saltul.
Se observa ca din punctul de vedere al interpretarii realizate prin executia programului de catre calculator, un program consta din date si instructiuni, identificarea instructiunilor se poate face numai daca se cunoaste o adresa de instructiune incepand de la care se poate face o identificare semnificativa a instructiunilor.
Unitatea de comanda (UCd) are rolul de a decodifica si interpreta instructiunile generand semnale de comanda care asigura fluxul de date corespunzator executiei instructiunii respective. Rezulta deci, ca structura UCd este realizata pe baza unitatilor functionale pe care aceasta trebuie sa le comande si pe baza setului de instructiuni pe care UCP trebuie sa-l execute.
In general o unitate de comanda este un automat complex. Exista doua solutii de implementare a UCd si anume sub forma de unitati de comanda conventionale si unitati de comanda microprogramate. Unitatile de comanda conventionale sunt realizate de obicei sub forma unei retele de automate codificate sau complet decodificate.
1.4.4. SETUL DE INSTRUCTIUNI
1. Instructiuni pentru transferul datelor. Sursa si respectiv destinatia unui astfel de transfer pot sa fie constituite de o locatie de memorie, un registru, sau elemente ale subsistemului de intrare/iesire.
2. Instructiuni aritmetice. Executa operatii aritmetice asupra unor date. In acest caz sursa operanzilor si destinatia rezultatului pot sa fie memoria sau registrele din UCP.
Cel mai simplu set posibil de instructiuni aritmetice ar putea sa contina numai o instructiune
de incrementare a continutului unui registru sau a continutului unui cuvant din memorie. Pe baza unei astfel de operatii se poate construi o aritmetica utilizand numere fara semn. Inrealitate chiar si cele mai elementare calculatoare 'stiu' sa execute operatia de adunare intre doua numere (eventual fara semn). La capatul celalalt al scalei complexitatii operatiiloraritmetice se gasesc calculatoarele in al caror set se gasesc cele patru operatii aritmetice care se pot efectua asupra numerelor cu sau fara semn reprezentate in virgula fixa (numere intregi) sau in virgula mobila (numere reale).
3. Instructiuni logice si de deplasare. Executa operatii logice (de tip SI, SAU, NU,
SAU EXCLUSIV) asupra unor date. Sursa operanzilor si destinatia rezultatului pot sa fie memoria sau registrele din UCP. Toate calculatoarele care contin in setul lor de instructiuni, instructiuni logice contin cel putin instructiuniile SI, SAU si NU cu toate ca dupa cum se stie disponibilitatea unei operatii SI-NU sau SAU-NU ar fi suficienta pentru realizarea oricarei prelucrari de tip logic.
4. Instructiuni de comparatie. Pot sa fie considerate drept instructiuni aritmetice (ca efect al executiei unei astfel de instructiuni starea UCP este actualizata conform diferentei dintre cei doi operanzi referiti in instructiune si acesta este singurul efect al executiei instructiunii), sau ca instructiuni logice
5. Instructiuni pentru controlul executiei programelor. Permit schimbarea dinamica a
secventei in care se executa instructiunile din program producand un salt neconditionat sau
conditionat la o adresa din program specificata in instructiune.
Instructiunile sunt memorate in memorie impreuna cu datele asupra carora opereaza.
UCP aduce o instructiune, determina ce prelucrari trebuie sa se efectueze si le executa.
Fiecare calculator are forma sa proprie de reprezentare a instructiunilor, dar orice instructiune contine doua informatii:
- codul operatiei - care specifica operatia care urmeaza sa se execute: adunare,
comparatie, salt, etc;
- unul sau mai multi specificatori de operanzi care descriu modul in care se obtin
operanzii instructiunii si eventual unde se memoreaza rezultatul acesteia.
In memorie o instructiune poate sa ocupe unul sau mai multe cuvinte. Exista calculatoare la care numarul de cuvinte utilizat pentru reprezentarea instructiunilor este fix, in timp ce la alte calculatoare numarul de cuvinte utilizat pentru reprezentarea unei instructiuni depinde de tipul acesteia. De exemplu o instructiune a unui calculator ipotetic care trebuie sa adune continutul cuvantului de memorie aflat la adresa 100 cu cel care se gaseste la adresa 200, memorind rezultatul la adresa 250 ar putea sa fie descrisa in memorie cu ajutorul a 4 octeti dispusi la adrese consecutive, dupa cum se arata in figura urmatoare.
1.4.5. SUBSISTEMUL DE INTRARE IESIRE
Rolul subsistemului de intrare / iesire este de a conecta echipamentele periferice la calculator. Prin intermediul acestor echipamente periferice se realizeaza de fapt schimbul de informatii cu lumea externa care poate sa fie reprezentata de operatori umani, alte procesoare, memorii externe, etc.
Cele mai obisnuite echipamente periferice de intrare / iesire sunt: terminalele de introducere / afisare date, unitatile pentru discuri magnetice, unitatile pentru benzi magnetice, plotere, imprimante, etc.
Se observa ca aceste echipamente sunt caracterizate de forme foarte diferite de reprezentare a informatiei si de viteze diferite de transfer a informatiei. De asemenea echipamentele periferice de tip disc sau banda magnetica pot sa transfere la un moment dat blocuri mari de date, in timp
ce echipamentele de tip terminal pot sa transfere la un moment dat un singur caracter. Corespunzator in subsistemele de intrare / iesire sunt continute interfete pentru cuplarea echipamentelor periferice. Rolul acestor interfete este de a realiza conversia de format si de viteza intre UCP si echipamentele periferice.
1.4.6. LIMBAJE DE PROGRAMARE
Un limbaj de programare este un limbaj artificial utilizat pentru comunicarea cu calculatorul.
Un limbaj de programare ca de altfel orice limbaj este definit prin: vocabular, sintaxa si semantica. Vocabularul unui limbaj este format din semnele si cuvintele din care se pot forma propozitii. Sintaxa unui limbaj este formata din totalitatea regulilor de buna formare a propozitiilor, iar semantica unui limbaj este data de totalitatea regulilor prin care se asociaza semnificatii propozitilor.
In general un calculator este o masina care 'stie' sa execute un set de operatii simple numite instructiuni. Un program nu este altceva decat o secventa de instructiuni, efectul executiei acestei secvente de instructiuni fiind o anumita prelucrare de informatie. Instructiuniile 'elementare' pe care un calculator poate sa le 'inteleaga' si deci sa le execute sunt in general instructiuni foarte simple ca de exemplu: aduna doua numere, compara un numar cu altul, muta o informatie dintr-o parte a memoriei calculatorului in alta, etc. Setul instructiunilor elementare pe care calculatorul il 'intelege' direct impreuna cu regulile de scriere a unor secvente de astfel de instructiuni formeaza un limbaj de programare. Acest limbaj este denumit de obicei limbaj masina, fiind specific masinii respective.
Exista peste o suta de limbaje de programare iar procesul de creare a noi limbaje de programare continua. In diferite perioade ale istoriei calculatoarelor diferite limbaje de programare au fost considerate ca fiind 'cele mai bune'. Astfel, daca la inceput disputa avea loc intre partizanii FORTRAN-ului (1954) si cei ai COBOL-ului (1959), in prezent disputa are loc intre partizanii aceluiasi FORTRAN (dar mult modernizat devenit FORTRAN 77), si cei ai limbajelor PASCAL (1971), MODULA (1979), C (1975), ADA (1979), FORTH (1974) PROLOG (1970), LISP (1960). De fapt daca facem abstractie de criteriul: ' cel mai bun limbaj este cel pe care il stiu', criteriul conform caruia tipul problemei determina tipul limbajului in care se descrie rezolvarea problemei, pare cel mai corect. Din punctul de vedere al raspandirii, pina la aparitia calculatoarelor personale se pare ca cele mai multe programe existente in lume erau scrise in COBOL. O data cu alte mutatii aduse de aparitia calculatoarelor personale s-a produs o mutatie si in domeniul utilizarii limbajelor de programare. Astfel, daca se iau in considerare toate programele scrise in lume, indiferent de dimensiunea si performantele lor, probabil ca cele mai multe programe au fost scrise in limbajul BASIC.
O cerinta fundamentala a oricarui limbaj de programare este asigurarea unei comunicatii eficiente si comode intre om si calculator.
Se considera de fapt ca exista doua nivele de limbaje de programare: limbaje de programare de nivel scazut si limbaje de programare de nivel inalt. Limbajele de programare de nivel scazut se numesc si limbaje de asamblare. Fiecare tip de calculator are propriul Sau limbaj de asamblare. O operatie in limbaj de asamblare corespunde unei operatii in limbaj masina, deosebirea fiind ca la nivelul limbajului de asamblare specificarea operatiilor se face utilizand nume simbolice (ADD, MOV, JMP, JNZ, etc) in timp ce la nivelul limbajului masina specificarea operatiilor se face utilizand coduri numerice. Suplimentar fata de limbajul masina un limbaj de asamblare dispune si de alte facilitati specifice (pseudoinstructiuni, macroinstructiuni, etc). In cazul limbajelor de nivel superior o operatie corespunde de obicei cu o secventa de operatii in limbaj masina, cu alte cuvinte puterea (complexitatea) operatiilor puse la dispozitia programatorilor este mult mai mare. Avand in vedere observatia ca numarul de linii de program scrise si verificate pe calculator intr-un interval de timp dat de catre un programator nu depinde de limbajul de programare utilizat, este evident ca cu cat puterea operatiilor puse la dispozitie de catre limbajul de programare este mai mare, complexitatea problemelor rezolvate cu acelasi efort de catre un acelasi programator este mai mare. Un alt avantaj al limbajelor de programare de nivel inalt este ca in majoritatea cazurilor programele scrise in astfel de limbaje sunt independente de particularitatile calculatoarelor pe care sunt utilizate
CLASIFICAREA LIMBAJELOR DE PROGRAMARE
limbaje orientate pentru calcule stiintifice: FORTRAN, BASIC, APL, etc;
limbaje orientate pentru probleme ne numerice: COBOL, LISP, SNOBOL, etc.
Limbajele mai noi: C, PASCAL, MODULA,
Un alt tip de clasificare tine cont de modul in care se specifica
calculatorului ce are de facut, si anume exista limbaje imperative si limbaje
declarative. Un limbaj imperativ este un limbaj in care programatorul trebuie
sa descrie pas cu pas prelucrarile care trebuie sa fie efectuate pentru a
rezolva o problema. Exemple de limbaje de programare imperative: FORTRAN,
PASCAL, COBOL, BASIC,
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 3356
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved