Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » scoala » informatica » sql
Programe si limbaje de programare

Programe si limbaje de programare


Programe si limbaje de programare

Calculatorul numeric (CN) este un sistem fizic care prelucreaza automat informatia codificata sub forma de valori discrete, conform unui program ce indica o succesiune determinata de operatii aritmetice si logice.

Sistemul de calcul este alcatuit din doua subsisteme principale:

subsistemul hardware ( echipamente fizice)

subsistemul software ( programele si structurile de date)



Structura de baza a calculatorului secvential, cu program memorat, stabilita de Von Newman in 1945, este reprezentata in fig.1.1 si cuprinde cinci unitati functionale:

Fig. 1.1

unitatea de intrare (UI);

unitatea de memorare (M);

unitatea de iesire (UE);

unitatea aritmetica si logica (UAL);

unitatea de comanda (UC).

Prin linia continua s-a reprezentat fluxul de date si instructiuni, iar prin linia intrerupta s-a reprezentat fluxul de comenzi si stari.

Calculatoarele reprezinta un instrument de lucru din ce in ce mai raspandit, cu o gama de aplicatii extrem de cuprinzatoare, cum ar fi finantele, comertul, industria de toate tipurile, cercetarea stiintifica, medicina, educatia, sisteme de comunicatii, etc.

Calculatorului i se pot furniza instructiuni prin apasarea tastelor functionale, dar el nu poate fi folosit la o viteza corespunzatoare daca instructiunile nu ii sunt furnizate rapid, pe masura executiei lor. Pentru a face posibil acest lucru, in memorie, alaturi de date, se plaseaza si instructiunile, codificate numeric. In functionarea sa, calculatorul repeta urmatorul ciclu de lucru:

unitatea centrala extrage din memorie urmatoarea instructiune;

unitatea de comanda decodifica instructiunea si o transforma in semnale electronice;

ca raspuns la aceste semnale electronice, instructiunea va fi executata de catre unitatea aritmetica, cu sau fara implicarea memoriei sau a unui dispozitiv periferic;

se reia lucrul de la primul pas.

Astfel se pot executa automat, la viteza de lucru a procesorului, chiar si secvente lungi de instructiuni, o astfel de secventa numindu-se program.

Operatiile simple pe care stie sa le execute un calculator numeric se reprezinta prin coduri (valori) numerice. Acest set de operatii (instructiuni) formeaza un limbaj prin intermediul caruia se poate comunica direct cu calculatorul si se numeste limbaj masina ( LM) ( cod masina).

Exemplu: - adunarea la IBM -PC, codul este 1111011.

Limbajul masina este specific fiecarui calculator in parte. Un program in cod masina este o secventa de coduri binare ce poate fi executata de un CN. Un astfel de program se numeste program executabil.

La inceput, calculatoarele erau programate cu ajutorul codului masina (adica instructiunile le erau furnizate direct in forma numerica), dar foarte repede au fost evidentiate mai multe neajunsuri ale acestei metode:

datorita naturii primitive a instructiunilor in cod masina, folosirea acestora era greoaie si genera multe erori;

programele scrise in cod masina erau prea greu de inteles si de modificat;

programarea reprezenta o activitate consumatoare de timp si costisitoare; era necesar ca sa se poata folosi acelasi program pe sisteme de calcul diferite - portabilitate, ceea ce nu era posibil in cazul unui program scris in cod masina, care era specific unui anumit tip de calculator si nu putea fi executat pe nici un altul.

A aparut astfel problema folosirii unui limbaj natural, cum ar fi limba engleza, dar si aceasta metoda  s-a dovedit a fi nepotrivita, asa incat, in final, a fost ales un compromis intre lizibilitatea si generalitatea limbii engleze si precizia si modul direct de adresare al codului masina, luand nastere astfel limbajele de programare de nivel inalt.

Limbajele de programare de nivel inalt LNI) sunt limbaje independente de calculatorul care le executa programele, spre deosebire de programele de nivel coborat - cod masina sau limbaje de asamblare - care sunt specifice tipului de calculator.

Avantajele utilizarii limbajelor de nivel inalt constau in:

naturalete - apropierea lor de limbajele naturale si/sau limbajul matematic;


usurinta de intelegere si utilizare;

portabilitate - posibilitatea ca acelasi program sa fie executat cu modificari minime pe calculatoare de tipuri diferite;

eficienta in scriere, data de facilitatile de definire de noi tipuri si structuri de date, operatii, etc.

Un LNI contine instructiuni care sunt mai apropiate de utilizator, de rationamentul uman decat de masina. Unei instructiuni in LNI ii corespunde o secventa de instructiuni in cod masina.

Exemplu: 1960 - calcule stiintifice: Fortran

- aplicatii de gestiune: Cobol

1970 - limbaje universale: Pascal, C, Modula, Ada

Din punct de vedere al modului de specificare a problemei, LNI-urile se impart in:

limbaje imperative: programatorul descrie secventa de operatie ce trebuie executata pentru rezolvarea problemei; Exemplu: Pascal, C, Ada, Basic.

limbaje declarative : programatorul descrie problema si nu modul de rezolvare a ei; Exemplu: Prolog( operatia de baza este evaluarea de predicate).

LNI-urile suporta programarea structurata si permit de regula definirea unor tipuri de date structurate, specifice aplicatiei.

Diversificarea tipurilor de aplicatie a determinat aparitia de noi tehnologii de programare, cum ar fi programarea pe obiecte. Un obiect este o entitate de sine statatoare care se compune din date si proceduri asociate pentru accesarea si preluarea lor. Un obiect poate deriva din alt obiect mostenind de la acesta componentele si proprietatile sale.

Exemplu: Simula, C++.

Pentru a executa un program scris intr-un LNI pe un anumit CN, instructiunile acestuia trebuie transformate in instructiuni din LM. Aceste operatii se realizeaza cu ajutorul unui program special numit translator. Translatoarele sunt de doua categorii:

compilatoare - translateaza un program din LNI in LM. Acesta poate fi executat oricand este necesar. Compilatorul inlocuieste fiecare instructiune din limbajul sursa cu o secventa echivalenta de instructiuni in LM.

interpretoare - analizeaza fiecare instructiune din programul in LNI, o converteste intr-o secventa de instructiuni in LM si executa aceasta secventa apoi trece la urmatoarea instructiune din programul sursa.

Un sistem de calcul, poate fi reprezentat ca o ierarhie de nivele, fiecare nivel fiind constituit pe baza nivelelor predecesoare.

Un CN este alcatuit dintr-un ansamblu de resurse fizice ( Hardware) si un pachet de programe (software de baza), sistem ce realizeaza prelucrarea datelor pe baza unor algoritmi specificati de utilizator prin programe de baza ( software de aplicatii).

Compilatoarele si interpretatoarele fac parte din softul de baza. Software-ul inclus in dispozitivele electronice in momentul fabricatiei se numeste firmware.

Operatiile efectuate prin program pot fi implementate in hardware si reciproc. Cele executate de hardware pot fi simulate prin software. Stabilirea implementarii unei operatii prin hardware sau software se face in etapa de proiectare a unui CN si are la baza criterii ca: viteza de executie, pretul de cost, fiabilitatea.

Modelul functional al unui sistem de calcul este structurat pe sapte nivele de ierarhie.

Nivelul 6. Aplicatii

Nivelul 5. Limbaje de nivel inalt

Nivelul 4. Limbaj de asamblare

Nivelul 3. Sistem de operare

Nivelul 2. Calculator fizic

Nivelul 1. Microprograme

Nivelul 0. Circuite si dispozitive

Nivelul 0: - unitatea functionala a unui CN: procesor, memorie, subsistemul de intrare - iesire, sunt circuite digitale

Nivelul 1: - este alcatuit ca o secventa de microinstructiuni ( Microprograme)

are rolul de a interpreta instructiunile de pe nivelul 2.

setul de microinstructiuni este mai mic de 50 si corespunde unor operatii elementare efectuate asupra nivelului 0.

microprogramele sunt incluse in firmware.

Nivelul 2: - este nivelul masinii conventionale - corespunde codului masina coduri binare .

fiecare instructiune masina este interpretata de un microprogram de pe nivelul1.

asambloarele si compilatoarele genereaza instructiuni in codul masina.

Nivelul 3: - sistemul de operare este un pachet de programe care creeaza o interfata intre utilizator si calculator si care realizeaza gestiunea resurselor hardware si software.

- sistemul de operare este alcatuit din trei nivele:

i)      nucleul S.O. contine functii care realizeaza operatiile de intrare/iesire la nivel fizic, alocarea resurse fizice din sistem, tratarea unor situatii de exceptie etc.

ii)    executivul S.O. contine functii care realizeaza operatii de intrare - iesire la nivel logic, gestioneaza fisierele de pe disc, planifica activitatile din sistem, etc. Exemplu: BDOS (Basic Disk O.S.) la MS-DOS

iii)  supervizorul sau interpretatorul liniei de comanda contine un limbaj de comenzi si instructiuni care realizeaza interfata cu utilizatorul. Exemplu: Command.com la MS-DOS

Nivelul 4. - permite scrierea de programe pentru nivelele 1- 3 folosind nume simbolice pentru operatii si nu cod masina. Translatarea se face de catre asamblor. Programarea in limbaj de asamblare permite un control direct resurselor hardware, dar necesita cunoasterea detaliata a arhitecturii calculatoarelor si a functiilor sistemului de operare.

Nivelul 5. - programele scrise in limbajele de nivel inalt sunt translatate de compilatoare pe nivelele 3 sau 4, sau sunt interpretate.

Exemplu: Fortan, Basic, Pascal, C, Ada, Modula, Prolog, C++.

Evolutia limbajelor de programare a dus la aparitia unor limbaje care au  instructiuni si structuri de date complexe, dar care au preluat si caracteristici ale limbajelor de asamblare. Mai mult, in implementarile mai noi ale limbajelor Pascal si C pot fi introduse direct in program instructiuni in limbaj de asamblare. Astfel se simplifica sarcina programatorului in implementarea unor algoritmi complecsi, care nu pot fi implementati eficient utilizand un singur limbaj de programare.

Nivelul 6. - in prezent exista o mare varietate de aplicatii cum ar fi: SGBD, sisteme CAD/ CAM, simulatoare, aplicatii de grafica etc.

Pentru lansarea in executie utilizatorul foloseste interpretatorul de comenzi al sistemului de operare.

Un limbaj de programare este deci un sistem de conventii adoptate pentru realizarea unei comunicari - intre programator si calculator. Limbajele folosite pentru programarea unui calculator sunt extrem de asemanatoare limbajelor naturale. Ele sunt compuse din:

cuvinte (rezervate);

punctuatie;

propozitii si fraze;

reguli sintactice etc.

Asa cum pentru insusirea unei limbi straine trebuie invatate cuvintele acesteia si regulile cu care pot fi manevrate, tot asa pentru insusirea unui limbaj de programare trebuie studiate cuvintele si semnele care il compun impreuna cu regulile de manevrare a lor.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.