CATEGORII DOCUMENTE |
1. Scurta prezentare a limbajelor de programare
Calculatorul "stie" sa execute un set de operatii simple, ca de exemplu operatii aritmetice elementare (adunare, scadere, inmultire, impartire). Prin combinarea acestor operatii simple se pot obtine prelucrari complexe. Combinarea operatiilor se supune unor reguli bine precizate. Studiul acestor reguli are la baza conceptul de algoritm. Conceptul de algoritm este foarte vechi, intelesul mai larg fiind acela de procedeu, metoda de rezolvare a unei probleme. In programare, conceptul de algoritm are un rol fundamental si se poate defini ca un set de reguli ce defineste secventa de operatii ce trebuie executate de calculator pentru solutionarea unui tip specific de probleme.
Pornind de la aceasta definitie, rezulta urmatoarele doua proprietati ale algoritmilor:
generalitatea - algoritmul determina modul de rezolvare a unui tip de problema si nu a unei probleme particulare;
marginirea in timp - executia algoritmului trebuie sa se termine intr-un numar finit de "pasi" (operatii).
Algoritmi mai au si alte proprietati:
rigurozitatea - impune ca fiecare pas al algoritmului sa fie precis definit;
executabilitatea - impune ca fiecare pas al algoritmului sa poata fi executat de calculator;
eficienta - se determina atat din punct de vedere al timpului de executie cat si al memoriei ocupate.
Rigurozitatea si executabilitatea algoritmilor sunt asigurate prin reprezentarea acestora in limbaje de programare. Limbajul de programare, ca si limbajul matematic, este un limbaj artificial, folosit pentru a comunica cu calculatorul. Putem acum defini programul, ca fiind o reprezentare (codificare) a unui algoritm intr-un limbaj de programare.
Rezolvarea unei probleme cu calculatorul presupune parcurgerea urmatoarelor etape:
specificarea problemei - ce consta in formularea problemei si impune specificarea datelor de intrare si a datelor de iesire (rezultatelor).
Exemplu: sa se rezolve un sistem de n ecuatii cu n necunoscute, dandu-se ca date de intrare matricea coeficientilor si vectorul termenilor liberi si furnizand ca rezultat solutia sistemului, in cazul in care acesta este compatibil determinat, sau un mesaj corespunzator in caz contar.
proiectarea algoritmului - utilizand diferite metode de reprezentare: pseudocodul, organigrame.
Pseudocodul se foloseste in general, pentru algoritmi ce vor fi implementati intr-un limbaj de programare de nivel inalt. Utilizarea organigramelor este mai adecvata pentru implementarea unui algoritm in limbaj de asamblare.
codificarea algoritmului intr-un limbaj de programare sub forma unui program. Alegerea limbajului de programare depinde de natura aplicatiei si de programator.
Marea majoritate a programelor sunt scrise in limbaje de nivel inalt. Anumiti algoritmi sunt implementati insa, in limbaj de asamblare. Principala diferenta intre cele doua tipuri de limbaje este aceea ca limbajul de asamblare specifica operatii detaliate corespunzatoare arhitecturii calculatorului, in timp ce limbajul de nivel inalt specifica actiuni complexe, mai apropriate de rationamentul uman si nu de masina.
Pentru rezolvarea unei probleme, utilizatorul trebuie sa-i furnizeze sistemului de calcul datele initiale si etapele de parcurs, prin intermediul unui limbaj de programare, iar rezultatele prelucrarilor vor fi furnizate in mediul extern intr-o forma specificata tot prin intermediul limbajului de programare.
In acest mod, limbajul de programare realizeaza conexiunea in ambele sensuri intre universul problemei de rezolvat si universul sistemului de calcul.
Un limbaj de programare opereaza cu doua categorii de date:
date elementare sunt acele date ale caror structura interna nu este accesibila programatorului; acestea pot fi de mai multe tipuri:
o date numerice, avand valori in multimi cunoscute din matematica (N,Y.R,C);
o date alfanumerice, avand valori de tip caracter sau siruri de caractere, pentru gestionarea textelor;
o date logice, avand valori "adevarat" sau "fals".
date structurate sunt acele date alcatuite din mai multe componente toate accesibile programatorului; exista urmatoarele categorii de date structurate:
o tablouri: cuprind mai multe date elementare de acelasi tip;
o inregistrari: cuprind date elementare de tipuri diferite.
Din punct de vedere al valorilor un program opereaza cu doua categorii de valori:
constante - valorile acestora nu se modifica in timpul executiei unui program;
variabile - valorile acestora se modifica in timpul executiei programului. Sunt utilizate locatii de memorie care pastreaza valorile acestor variabile.
Un limbaj de programare se defineste prin:
vocabular - ce contine multimea semnelor si cuvintelor din care se pot forma propozitii;
sintaxa - se refera la multimea regulilor ce descriu modul de alcatuire a propozitiilor;
semantica - specifica regulile ce definesc intelesul (semnificatia) propozitiilor.
Operatiile simple pe care sistemul de calcul stie sa le execute se reprezinta prin coduri (valori) numerice. Acest set de operatii sau instructiuni formeaza un limbaj prin intermediul caruia se poate comunica direct cu calculatorul, numit limbaj masina sau cod masina. Spre exemplu, instructiunea de inmultire se reprezinta in limbaj masina pentru calculatoarele IBM-PC pe 7 biti prin codul: 1111011.
Limbajul masina este specific fiecarui calculator in parte. In etapa de proiectare a fiecarui calculator se stabileste setul de instructiuni masina. Cu cat setul este mai simplu, cu atat se reduce complexitatea si costul circuitelor electronice necesare implementarii UCP-ului.
Un program in cod masina este o secventa de coduri binare, ce poate fi executata de catre microprocesor si acest program se numeste program executabil.
Programarea primelor calculatoare s-a facut direct in cod masina, fiind extrem de anevoioasa. Tocmai de aceea s-a renuntat repede la acest mod de programare si au aparut noi limbaje, care au simplificat operatia de scriere a programelor si comunicarea cu calculatorul.
In prezent exista peste 200 de limbaje de programare, limbajele care au aparut fiind mai apropiate de utilizator si de tipurile de aplicatii noi, decat de codul masina.
Limbajele de programare se clasifica in:
limbaje de asamblare (limbaje de nivel coborat);
limbaje de nivel inalt
Un limbaj de asamblare este foarte apropiat de codul masina al unui sistem de calcul. Fiecare sistem de calcul dispune de propriul sau limbaj de asamblare. Un limbaj de asamblare se caracterizeaza prin aceea ca unei instructiuni din set ii corespunde o instructiune in cod masina. Deosebirea este insa urmatoarea: o instructiune in limbaj de asamblare se specifica printr-un nume simbolic (mnemonica) si nu prin cod numeric.
Astfel, de exemplu, un limbaj de asamblare pentru calculatoarele IBM-PC, operatiile de adunare si inmultire se reprezinta prin instructiuni cu mnemonicele: ADD si MUL
Limbajele de programare permit, de regula, definirea si utilizarea de proceduri si macroinstructiuni, oferind astfel programatorului o serie de facilitati in scrierea programelor.
Programarea in limbaj de asamblare implica insa cunoasterea detaliata a arhitecturii procesorului (resursele procesorului la care are acces programatorul), a resurselor sistemului de calcul precum si a structurii si modului de lucru al sistemului de operare. Limbajul de asamblare se utilizeaza in general, in aplicatii ce necesita acces direct la resursele hardware ale sistemului de calcul sau in aplicatii ce necesita viteza mare de executie (animatie). Trebuie insa mentionat faptul ca, limbajul de asamblare fiind specific fiecarui microprocesor, aplicatiile scrise in limbaj de asamblare nu sunt portabile (nu pot fi executate decat pe calculatoare care au acelasi limbaj de asamblare, deci acelasi microprocesor).
Un limbaj de nivel inalt contine instructiuni care sunt mai apropiate de utilizator, de rationamentul uman, decat de masina. Complexitatea operatiilor puse la dispozitia programatorului este mult mai mare decat in cazul limbajelor de asamblare. Un limbaj de nivel inalt se caracterizeaza prin aceea ca unei instructiuni din set ii corespunde o secventa de instructiuni in cod masina. Spre deosebire de programele in limbaj de asamblare, programele scrise in limbaj de nivel inalt sunt, in general, independente de masina, fiind portabile de pe un calculator pe altul.
Primele limbaje de nivel inalt au fost orientate spre calcule stiintifice (prelucrari numerice), calculatorul fiind utilizat in acea etapa pentru aplicatii de acest gen. Un astfel de limbaj a fost limbajul FORTRAN, mult utilizat in scrierea de programe in perioada anilor '60. Dintre limbajele orientate pe aplicatii contabile amintim limbajul COBOL. In afara limbajelor specializate in rezolvarea anumitor clase de aplicatii, au aparut si limbajele universale. Incepand cu anii '70 au aparut limbaje de programare noi, ca: PASCAL, C, MODULA, ADA ce pot fi utilizate in orice tip de probleme, la fel de bine.
Limbajele de programare de nivel inalt suporta de regula programarea structurata si permit definirea unor tipuri de date structurate specifice aplicatiei.
Diversificarea tipurilor de aplicatii a determinat aparitia de noi limbaje de programare. O tehnica noua de programare este programarea orientata pe obiecte. Un obiect este o entitate de sine statatoare care se compune din date si proceduri asociate pentru accesarea si prelucrarea lor. Un obiect poate deriva din alt obiect, mostenind de la acesta componentele sale. Un limbaj orientat pe obiecte dispune de mecanismele-suport necesare acestui stil de programare. Astfel de limbaje sunt: SIMULA, SMALLTALK-80, C++, PASCAL versiunile TURBO PASCAL 5.5 si 6.0
Calsificarea limbajelor de programare de nivel inalt
In functie de modul de specificare al problemei, limbajele de programare de nivel inalt se pot clasifica in:
limbaje de programare procedurale (limbaje imperative) - in care programatorul descrie modul de rezolvare a problemei, secventa de operatii ce trebuie executate pentru rezolvarea problemei. Astfel de limbaje de programare sunt cele conventionale FORTRAN, COBOL, PASCAL, ADA, BASIC, C, C++.
limbaje de programare neprocedurale (limbaje declarative) in care programatorul precizeaza mai degraba problema decat modul de rezolvare, care la randul lor sunt de mai multe tipuri:
limbaje de programare functionale, de exemplu LISP
limbaje de programare logice cum este PROLOG
limbaje de programare orientate pe obiecte ca SMALTAUK
limbaje de programare bazate pe flux de date spre exemplu VAL
Caracteristicile acestor limbaje sunt:
referinte asociate;
programare nedeterminata;
procese paralele.
Limbaje si masini virtuale
Limbajul si masina virtuala sunt interdependente, intre ele existand o relatie stransa. Masina prin limbajul ei are un set de instructiuni de baza pe care le poate executa. Se poate spune ca o masina defineste un limbaj. Dar si reciproc, un limbaj defineste o masina care poate executa toate programele scrise in acel limbaj. Acest limbaj este definit limbaj masina.
Actual, programele sunt scrise in limbaje de nivel inalt. Aceste programe se numesc programe sursa. Pentru a executa astfel de programe, pe un anumit calculator, instructiunile acestora trebuie transformate in instructiuni in limbaj masina. Aceasta operatie de transformare sau translatare a unui program din limbaj de nivel inalt in limbaj masina se realizeaza cu ajutorul unui program special numit translator. Translatoarele se impart in doua categorii:
compilatoarele translateaza un program scris in limbaj de nivel inalt (program sursa) intr-un program in limbaj masina; acesta poate fi apoi executat oricand este necesar; compilatorul inlocuieste fiecare instructiune din programul sursa cu secventa echivalenta de instructiuni ale limbajului masina; compilatorul primeste, deci, ca date de intrare programul in limbaj de nivel inalt si furnizeaza ca rezultat un program in limbaj masina;
interpretoarele analizeaza fiecare instructiune din programul scris in limbaj de nivel inalt si executa secventa echivalenta de instructiuni in limbaj masina, dupa care trece la urmatoarea instructiune din programul sursa.
Translatarea unui program scris in limbaj de asamblare in limbaj masina se realizeaza cu ajutorul unui program numit asamblor.
Calculatorul impreuna cu programul translator (compilator sau interpretor) pentru un anumit limbaj de programare poate fi considerat ca un calculator virtual (masina virtuala), care "stie" acel limbaj. Astfel spus, limbajul masina al calculatorului virtual este acel limbaj de programare.
Pentru ca operatia de translatare a unui program scris in limbajul L1 intr-un limbaj masina L0 sa fie simpla, este necesar ca limbajele sa nu fie mult diferite. In acest caz, limbajul L1 poate fi un limbaj prea simplu pentru implementarea unor aplicatii complexe. De aceea este necesar un nou limbaj L2, care sa fie mai apropiat de aplicatie decat de masina. Programele scrise in limbajul L2 pot fi apoi translatate in limbajul L1 sau pot fi interpretate de un interpretor scris in L1. Utilizatorul are acum la dispozitie un calculator virtual al unui limbaj masina L2. Programul in L2 poate fi translatat direct si in L0 sau interpretat de un interpretor pe calculatorul real C0, dar operatia de translatare este mai complexa.
Prin implementarea de noi compilatoare si translatoare se pot creea noi masini virtuale. Astfel se formeaza o ierarhie de limbaje, in care un limbaj este mai complex decat limbajele predecesoare. Generalizand, structura ierarhica poate fi reprezentata schematic ca in figura 1.
Figura 1. Structura ierarhica a limbajelor de programare
Programele scrise in limbajul Li, 0 < i <= n, sunt translatate intr-un limbaj Lj sau sunt interpretate de un interpretor pe calculatorul Cj, cu 0 < j <= i.
Relatia dintre un calculator virtual si un limbaj este urmatoarea: fiecare calculator virtual defineste un limbaj ce consta din instructiunile pe care acesta le poate executa. Un limbaj de programare, la randul sau, defineste un calculator virtual care poate executa programele scrise in acel limbaj.
Programatorii folosesc de regula calculatorul virtual de pe nivelul n, fara a fi preocupati de nivelurile de la baza structurii si de legatura intre niveluri. Pentru a intelege insa cum lucreaza un calculator sau pentru a proiecta noi niveluri este necesar sa cunastem intreaga ierarhie.
Calculatoarele actuale - calculatoare multinivel
Pornind de la structura ierarhica de limbaje si de masini virtuale prezentata in paragraful anterior, un sistem de calcul poate fi reprezentat din punct de vedere functional ca o ierarhie de niveluri, fiecare nivel fiind construit pe baza nivelurilor predecesoare.
Un sistem de calcul este alcatuit dintr-un ansamblu de resurse fizice si un pachet de programe sistem ce realizeaza prelucrarea datelor pe baza unor algoritmi specificati de utilizator prin programe de aplicatie.
Resursele fizice ale calculatorului (cum ar fi de exemplu: circuite electronice, circuite integrate, dispozitive, echipamente de intrare iesire, memorii, surse de alimentare, cabluri) formeaza hardware-ul. Pachetul de programe sistem si programele de aplicatie formeaza software-ul de baza, respectiv software-ul de aplicatie. Compilatoarele si interpretoarele fac parte din software-ul de baza.
Termenul de "firmware" se refera la software-ul inclus in dispozitivele electronice in momentul fabricatiei acestora.
Orice operatie efectuata prin program (software) poate fi implementata in hardware si reciproc, orice operatie executata de hardware poate fi simulata prin software. In acest mod, se poate considera ca, din punct de vedere logic, software-ul si hardware-ul sunt echivalente. Stabilirea implemntarii unei operatii in hardware sau in software se face in etapa de proiectare a unui calculator si are la baza criterii ca: viteza de executie, pret de cost, fiabilitate. Astfel, spre exemplu, operatiile elementare (adunare, scadere, inmultire, impartire) cu numere reale au fost implementate initial in software. Ulterior, s-au proiectat circuite specializate care sa efectueze aceste operati hardware, avantajul principal fiind executia mult mai repede decat in cazul simularii prin software.
Fiecare calculator defineste un numar de operatii care pot fi executate de unitatea sa centrala. Aceste operatii sunt in principal destinate memorarii sau recuperarii informatiilor din memoria interna, calculelor aritmetice sau logice si controlului dispozitivelor periferice. In plus, exista un numar de instructiuni pentru controlul ordinii in care sunt executate operatiile.
O instructiune este o operatie elementara executabila de catre unitatea centrala a unui calculator. O secventa de mai multe instructiuni executate una dupa cealalta o vom numi program
Sarcina principala a unui calculator este executia programelor utilizator. Pentru a fi executate programele trebuie sa fie intr-o anumita stare, numita executabila , adica instructiunile programului sa fie in cod executabil (instructiunile sunt executate secvential pas cu pas folosind memoria interna.
Un program pot fi in trei stari dupa cum se poate vedea in figura 2. Aceste stari sunt:
cod sursa - un program in acest cod poate fi format din mai multe subprograme, fiecare fiind complet separat si avand propriul sau cod sursa;
codul obiect se obtine prin compilarea codului sursa al programului; prin compilare codul sursa este analizat sintactic si semantic dupa care este transformat in cod obiect;
codul executabil se obtine prin link-editarea codului obiect sau codurile obiect ale tuturor subprogramelor constituiente ale programului sunt legate si transformate in cod executabil.
Figura 2. Starile unui program
Caracterul secvential al calculatorului rezulta din modul de executie al programului. Codul executabil este memorat in memoria interna in momentul in care se doreste lansarea in executie. Lansarea in executie a unui program se face prin intermediul SO si prin realizarea functiilor UC in modul urmator:
forma executabila a instructiunii este transferata in memoria interna de pe hard disk;
datele de intrare sunt stocate in memoria interna prin intermediul dispozitivelor de intrare
decodificarea instructiunilor (identificarea operatiilor ce trebuie realizate) si aducerea din memoria interna a operanzilor;
prin comanda UCC instructiunile stocate in memorie sunt prelucrate si se da comanda UAL pentru a prelua datele din memoria interna in vederea realizarii calculelor aritmetice si logice;
prin operatiile executate de UAL se obtin rezultatele intermediare ce sunt temporar stocate in memorie pentru a fi ulterior utilizate in obtinerea rezultatelor finale ce vor fi stocate tot in memorie;
prin comanda UCC rezultatele finale din memorie sunt transmise dispozitivelor de iesire.
In acest mod, programul este executat secvential, instructiune cu instructiune.
Datele si programele sunt introduse in calculator prin intermediul unitatii de intrare fiind apoi depuse in memorie. Unitatea de comanda trimite catre memorie semnale de control reprezentand adrese si obtine de la aceasta instructiunile programului de executie. Pe baza instructiunilor, unitatea de comanda furnizeaza semnalele de control necesare pentru citirea din memorie a datelor de prelucrat si executarea operatiilor necesare in cadrul unitatii aritmetice-logice. Rezultatele sunt depuse din nou in memorie sau sunt trimise catre mediul extern prin intermediul unitatii de iesire.
Instructiunile care compun un program trebuiesc si ele reprezentate in memorie, la fel ca orice alta informatie, din cauza faptului ca unitatea centrala nu are posibilitatea sa-si pastreze programele in interior. Pentru memorarea acestor instructiuni este nevoie de o noua conventie de reprezentare care sa asocieze un numar sau o secventa de numere naturale fiecarei instructiuni a unitatii centrale.
Executia unui program de catre calculator presupune incarcarea instructiunilor in memoria interna si executia acestora una cate una in unitatea centrala. Unitatea centrala citeste din memorie cate o instructiune, o executa, dupa care trece la urmatoarea instructiune. Pentru pastrarea secventei, unitatea centrala memoreaza in permanenta o referinta catre urmatoarea instructiune intr-o locatie interna numita contor de program (indicator de instructiuni).
Modelul de executie secventiala a instructiunilor, in ordinea in care acestea sunt asezate in memorie, este departe de a fi acceptabil. Pentru a fi util, un program trebuie sa poata sa ia decizii de schimbare a instructiunii urmatoare in functie de informatiile pe care le prelucreaza. Aceste decizii pot insemna uneori comutarea executiei de la o secventa de instructiuni la alta. Alteori, este necesar sa putem executa o secventa de instructiuni in mod repetat pana cand este indeplinita o anumita conditie exprimabila cu ajutorul informatiilor din memorie. Numarul de repetari ale secventei de instructiuni nu poate fi hotarat decat in momentul executiei. Aceste ramificari ale executiei se pot simula destul de usor prin schimbarea valorii referintei memorate in contorul de program.
De remarcat ca unitatea de comanda poate testa direct rezultatele obtinute in unitatea aritmetica-logica, iar pe baza unor instructiuni speciale ale programului poate lua decizii de executie a unor secvente de instructiuni din doua sau mai multe secvente (realizarea de ramificatii in program).
Structura de principiu a unui sistem de calcul, prezentata in fig. 2.1 a capitolului 2, este structurata pe 7 niveluri ierarhice dupa cum se poate observa in figura 2.
Nivelul 0, nivelul fizic, este primul nivel care intra in alcatuirea unui sistem de calcul, pe care se afla logica cablata, adica circuitele si dispozitivele din care se compun unitatile functionale ale calculatorului: processor, memorie, subsitemul de intrare/iesire. Aceste circuite sunt circuite digitale numite porti. Portile pot fi privite ca niste componente logice interconectate. Acestea sunt realizate cu ajutorul tranzistoarelor. Fiecare poarta dispune de una sau mai multe intrari logice si intoarce ca rezultat o functie simpla (SI, NU, SAU, SAU EXCLUSIV) obtinuta conform semnificatiei de la intrare. La acest nivel se executa instructiunile limbajului microprogramat de la nivelul superior care actioneaza asupra acestui nivel ca niste comenzi.
Nivelul 1, nivelul microprogramat, nivelul limbajului intern al masini, este primul nivel la care apare conceptul de program, ca o secventa de instructiuni. Aceasta secventa, numita microprogram, are rolul de a interpreta instructiunile de pe nivelul 2 si este realizat cu un set mic de instructiuni simple (sub 50), de transfer si teste al unor conditii. Acest set de instructiuni corespund unor operatii elementare care se refera la hardware (ca de exemplu: incarca o valoare intr-un registru, transfera date intre doua resurse ale calculatorului, testeaza un bit). Pe acest nivel exista mai multe programe pe care masina de pe nivelul 1 le poate executa. Este scris intr-o memorie ROM interna la care are acces numai producatorul. In multe calculatoare, microprogramul este in "firmware".
Figura 2. Modelul functional al unui sistem de calcul
Nivelul 2, nivelul masinii conventionale, pe care se afla calculatorul real, masina fizica. Acest nivel corespunde codului msina. Fiecare instructiune din setul de instructiuni de pe acest nivel este interpretata de un microprogram de pe nivelul 1. Aceste instructiuni sunt prezentate in documentatia calculatorului si constau din valori (coduri) numerice binare. Compilatoarele genereaza programe ce contin instructiuni in acest limbaj. Fiecare procesor defineste in mod implicit un limbaj de nivel 2 si o masina virtuala al carui limbaj masina este interpretat de un microprogram. Aceasta structura fizica poate corespunde la doua sau mai multe masini daca microprogramul de pe nivelul 1 este scris in mod adecvat si aceeasi masina conventionala se poate implementa prin diverse structuri fizice. Sunt calculatoare care nu dispun de nivelul 1 microprogramat, atunci instructiunile de pe nivelul 2 sunt tratate direct de nivelul 0.
Nivelul 3, nivelul sistemului de operare este constituit dintr-un pachet de programe care creeaza o interfata intre utilizator si calculator si care realizeaza gestiunea resurselor hardware si software din sistemul de calcul. Sistemul de operare este la randul sau structurat pe trei niveluri:
nucleul sistemului de operare, acestui nivel ii corespund un set de instructiuni noi, principalele operatii realizate fiind operatile de intrare/iesire la nivel fizic, alocarea resurselor fizice din sistem, tratarea unor situatii de exceptie, s.a.; nucleul sistemului de operare MS-DOS se numeste BIOS ( Basic Input Output System);
executivul sistemului de operare, setul de instructiuni de pe acest nivel realizeaza operatiile de intrare/iesire la nivel logic, gestioneaza fisierele pe disc, planifica activitatea din sistem, s.a.; executivul sistemului de operare MS-DOS se numeste BDOS ( Basic Disk Operatinng System).
supervizorul sau interpretorul liniei de comanda, acestui nivel ii corespunde un limbaj de comenzi si instructiuni care realizeaza interfata cu utilizatorul; prin intermediul acestui limbaj de comanda utilizatorul comunica cu sistemul si are acces la resursele lui, de accea, din punctul de vedere al utilizatorului, acesta este primul nivel pe care trebuie sa-l stie pentru a putea folosi calculatorul.
Nivelul 4, nivelul limbajului de asamblare, permite utilizatorului sa scrie programe pentru nivelurile 1, 2 si 3, folosind nume simbolice pentru operatii si nu coduri numerice. Caracteristica specifica acestui nivel este aceea ca nivelurile inferioare sunt interpretate, iar nivelurile superioare au nevoie de translatoare.
Programele scrise in limbaj de asamblare sunt translatate in cod masina de catre asamblor. Programarea in limbaj da asamblare permite un control direct al calculatorului real, dar presupune o cunoastere mai detaliata atat a resurselor calculatorului si functionarii acestoracat si a sistemului de operare.
Nivelul 5, nivelul limbajului de aplicatie adica, limbajele de programare de nivel inalt sau limbaje orientate pe tipuri de probleme concepute pentru a fi utilizate de catre programatorii de aplicatii. Programele scrise pe acest nivel sunt translatate (de catre compilatoare) pe nivelurile 3 sau 4, sau sunt interpretate.
Nivelul 6, nivelul ansamblului de programe care contine numeroase date pentru aplicatii care tin de diferite domenii de lucru.
& In concluzie se poate spune ca un calculator poate fi vazut ca o suita de niveluri, fiecare inglobandu-le pe cele precedente. Un nivel reprezinta un grad oarecare de abstractizare si contine diverse obiecte si operatii cu aceste obiecte. In sens ascendent creste complexitatea prelucrarii, iar in sens descendent creste volumul materialului prelucrat.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 5005
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved