Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

CATEGORII DOCUMENTE





AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Tipuri de limbaje de programare

algoritmi

+ Font mai mare | - Font mai mic







DOCUMENTE SIMILARE

Trimite pe Messenger
Tipuri de limbaje de programare
Constructia si simularea executiei unui program (in limbaj de asamblare)

Tipuri de limbaje de programare

 

Clasificare.



         Un limbaj de programare este 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 impreuna cu regulile de manevrare a lor.

           Dupa metoda cu care este conceput ansamblu comunicarii , limbajele pot fi clasificate in mai multe moduri . In continuare voi enumera cele mai importante clase de limbaje , descriere ce acopera totalitatea limbajelor existente .

      

1. Limbaje de nivel scazut – de nivel inalt

 

      “ Nivelul “ unui limbaj este apreciat prin pozitia pe care o ocupa pe scara constituita

de limbajul recunoscut de microprocesor ( limbaj masina ) si limbajul natural al programatorului ( limba romana , limba engleza …) .

          Un limbaj de nivel scazut este foarte apropiat de masina , el manipuleaza cu elemente de nivel hardware , fizic , cum ar fi : registru , microprocesor , locatie de memorie , port de intrare / iesire etc .

           Un limbaj de nivel inalt sau foarte inalt manipuleaza cu concepte apropiate de limbajul natural , concepte de nivel logic , cum ar fi : colectie de date , nume de operatie ( sort , writeln , open ) , variabile , constante ( asemanatoare ca inteles cu cele din matematica).

           Cu ajutorul unui limbaj de nivel inalt programatorul se face mult mai usor inteles de catre calculator . Uneori o singura limie de program scrisa cu un astfel de limbaj poate echivala cu sute de linii de program scrise in limbaj masina . Deci din punct de vedere al reducerii timpului de realizare a unui program si al sigurantei in functionare ( absenta erorilor de programare ) este de preferat un limbaj de nivel cat mai ridicat ( inalt sau foarte inalt ) .In schimb , pe masura ce limbajul are un nivel mai ridicat executia programului conceput cu ajutorul sau va fi mai lenta , decat a unui program ce realizeaza aceleasi operatii dar este scris in limbaj de asamblare .

             O alta diferenta esentiala intre cele doua tipuri de limbaje o reprezinta portabilitatea , adica posibilitatea transferarii programelor pe un alt tip de masina decat cea pe care au fost construite . Din acest punct de vedere limbajul de asamblare este neportabil deoarece el este specific microprocesorului . Programele realizate pe un tip de masina trebuie rescrise integral pentru noul tip de masina , folosind un nou set de instructiuni – care deobicei difera foarte

 mult . Lucrurile stau altfel cu programele concepute cu ajutorul unui limbaj de nivel inalt , deoarece acestea sunt detasate de masina . Intre un astfel de program si calculator se interpune compilatorul ( sau interpretorul ) care rezolva corect transformarea fisierului-sursa in fisier-executabil .

2. Limbaje procedurale – neprocedurale

 

Cele doua tipuri de limbaje , procedurale si neprocedurale , se diferentiaza prin nivelul de organizare ( structurare ) a unui program . Limbajele neprocedurale sunt concepute pentru a gandi un program la nivel de instructiune , pe cand cele procedurale , obliga programatorul sa conceapa programe la nivel de bloc . Intr-un limbaj procedural (numit si limbaj structurat)

programele sunt scrise instructiune cu instructiune , dar ele sunt organizate logic in blocuri (grupuri de instructiuni ) ce realizeaza o actiune bine determinata .In general un bloc are un punct de intrare si un punct de iesire – nu mai multe .

          Un limbaj procedural ofera posibilitatea utilizarii unui nivel ridicat de concepere a unui program si duce la realizarea de programe coerente si protejate la erori . Prin contrast , limbajele neprocedurale nu favorizeaza programatorul in a se desprinde de nivelul „instructiune „ si duc deseori la programe greu de controlat – mai ales in cazul programelor de dimensiuni mari .

           Limbajele neprocedurale sunt inca preferate de unii utilizatori datorita timpului foarte scurt cat decurge invatarea si utlizarea lor .

3. Limbaje orientate

 

Din punctul de vedere al aplicabilitatii unui limbaj , limbajele pot fi orientate pe o anumita problema sau concepute pentru solutionarea oricarui tip de problema – limbaje de uz general sau altfel spus , neorientate pe o problema .

        Limbajele orientate prezinta un grad inalt de specificitate pe cand un limbaj neorientat reprezinta un cadru general ce permite introducerea de catre utilizator a conceptelor si prelucrarilor dorite .

        Deci , diferenta esentiala dintre cele doua tipuri de limbaje o constitue nivelul conceptual definit . Cele specializate poseda deja integral suportul necesar si permit programatorului sa se concentreze la ansamblul problemei , pe cand cele nespecializate lasa in sarcina programatorului manevrarea nivelelor inferioare ale problemei .

4. Limbaje concurente 

Un limbaj concurent permite definirea de procese ( prelucrari ) paralele , executia sa fiind ramificata la un anumit moment de timp . Prin contrast limbajele neconcurente ( majoritatea limbajelor ) au o desfasurare liniara , fiind activ un singur proces la un moment dat . Procesele concurente presupun in mod obligatoriu un sistem multi-tasking ce poate gestiona mai multe „ sarcini „ la un moment dat .

      

5.  Limbaje de nivel scazut

Aceasta categorie de limbaje are un reprezentant autoritar si anume : limbajul deasamblare . Diferentierile care se pot face pentru limbajele de nivel scazut sunt urmatoarele :

a)     – dupa tipul de masina ;

Regulile respectate de versiunile limbajului de asamblare sunt :

-         o noua versiune o include complet pe cea anterioara ,

-         versiunea noua ofera functii suplimentare si le realizeaza pe cele vechi mai rapid .

b)    – dupa mediul de programare oferit .

Aspectul unui limbaj poate fi schimbat radical de mediul de programare oferit . Pentru limbajul de asamblare exista mai multe implementari disponibile , incepand cu pachete ce opereaza in mod linie si culminand cu medii integrate in care toate operatiile se pot declansa de la un acelasi pupitru de comanda .

       Nu sunt luate in considerare decat aceste medii integrate ( denumite generic medii Turbo) , dintre care se detaseaza Turbo Asamblorul firmei Borland TASM.



Limbajul TURBO PASCAL

 

1.Caracteristici generale

 

Un limbaj de programare este un limbaj artificial care prin exprimari simbolice descrie operatiile de prelucrare automata a datelor, necesare pentru rezolvarea nuei anumite probleme a utilizatorului.

         Calculatorul manipuleaza informatiasub forma binara. El nu intelege decat comenzi date in binar. Codul in care sunt scrise aceste comenzi este codul binar, iar limbajul este limbajul masina. Se numeste asa pentru ca este un limbaj al masinii, al procesorului. Este specific fiecarui tip de masina deoarece setul de instructiuni pe care le intelege calculatorul trebuie sa se regaseasca sub forma de circuite electronice in procesor. Pentru om este foarte greu sa urmareasca un program scris in limbajul masina, program care este un sir de cifre binare  din aceasta cauza au fost create limbajele de programare de nivel inalt. Ele sunt mai apropiate de limbajul uman si sunt in general portabile, adica, cu foarte mici modificari, un program scris intr-un astfel de limbaj vaputea fi executat pe orice tip de calculator. O instructiune  dintr-un limbaj de nivel inalt codifica un grup de instructiuni masina. Limbajele de programare de nivel inalt se mai numesc si limbaje algoritmice deoarece descriu algoritmul de rezolvare a problemei sub forma unei secvente de instructiuni care se vor executa in ordinea in care au fost scrise. Limbajul Pascal este un limbaj de nuvel inalt.

         Limbajele de nivel inalt nu sunt intelese de calculator deoarece acesta nu intelege decat instructiunile binare ale limbajului masinii. Instructiunile din limbajele de nivel inalt trebiue traduse in cod masina. Aceasta operatie se realizeaza cu ajutorul unor programe traducatoare. Acestea sunt de doua tipuri:

-         compilatoare, care traduc intreg programul pentru a-l putea  transforma intr-un program care sa fie executat ori de cate ori este nevoie.

-         ineterpretoare, care traduc si executa pe rand fiecare instructiune. 

Pentru a obtine unprogram executabil trebiue parcurs urmatorul drum:

1.     Editarea programului. Cu ajutorul unui editor de texte se scrie programul de la tastatura pe un support de informatie, in limbajul de program ales. Operatia se numeste editarea programului, iar programul obtinut este program sursa. Programul sursa este ca un document pe care omul il intelege. Pentru calculator el este insa un text sscris intr-un limbaj necunocut.

2.      Traducerea programului. In aceasta faza fiecare instructiune din programul sursa este tradusa intr-o secventa de instructiuni in cod masina care pot fi executate de calculator, obtinandu-se modulele obiect. Operatia se executa sub controlul unui program numit compilator. Fiecare limbaj de programare are propriul program traducator. Exista astfel compilator Pascal, compilator C etc. Operatia se numeste compilare  si programul obtinut se numeste program obiect. Daca programul compilator detecteaza  o eroare sintactica el va afisa un mesaj de eroare pe ecran. In acest caz, autorulprogramului poate sa modifica fisierul sursa folosind programul editor, dupa care va compila din nou programul. Operatiile de modificare cu editorul si de tastare cu compilatorul se vor executa pana cand compilatorul nu va mai detecta erori. Atunci cand compilatorul nu mai gaseste erori inprogramul sursa, inseamna ca traducerea sa facut correct si rezultatul traducerii poate fi depus intr-un fisier. Programul obiect obtinut nu este un program executabil deoarece modulele obiect sunt asemanatoare pieselor “puzzle”:sunt fragmente care necesita sa fie ansamblate pentru a forma o imagine unitara.

3.     Editarea legaturilor. Modulele obiect sunt legate unele de altele astfel incat sa se obtina un program executabil. Operatia se numeste editare de legaturi (link edit) si este executata de catre un program numit editor de legaturi (linkage editor). Pentru a obtine programul executabil pot fi legate module obiect care exista deja in bibliotecile sistemului.

4.     Incarcarea si lansarea in executie. Programul executabil poate fi incarcat  in memoria interna si lansat in executie pentru a produce efectele pentru care a fost creat. In timpul executarii programului pot sa apara eroei semantice. Aceste erori vor duce la oprirea programului. In acest caz, autorul programului  va depista eroarea si va modifica fisierul sursa cu programul editor, dupa care va compila din nou programul si va edita legaturile.

5.     Testarea si depanarea programului. Programul executabil  poate fi testat. Testarea se face prin executarea  repetata a programului cu seturi de date de intrare diferite. In timpul testarii se poate afla daca exista erori de conceptie sau erori logice sau daca rezultatele obtinute nu au aspectul grafic dorit. Pentru remedierea acestor erori trebuie corectat programul sursa cu ajutorul editorului, compiat din nou cu ajutorul compilatorului, editate legaturile si reluat testul.




Operatia de corectare a eorilor se numeste depanarea programului. Ea se poate desfasura sub controlul unui program specializat numit depanator de programe care ajuta la detectarea instructiunii eronate. Operatia de depanare se executa mai usor daca limbajul este dotat si cu inerpretor. In acest caz se va executa repetat programul obiect fara sa se ami reia de fiecare data si operatia de editare a legaturilor.

Toate aceste operatii pot fi asigurate de diferite programe: editor de texte, compilator, editor de legaturi, program depanator. Atunci cand se realizeaza un program executabil, se parcurg operatiile de editare, compilare, lansare in executie si testare de mai multe ori. Aceasta inseamna ca trebuie incarcate in memorie si lansate in executie de mai multe ori programele editor, interpretor si depanator sau editor, compilator, editor de legaturi si depanator. Pentru a usura munca programatorului, aeste programe pot fi organizate intr-un pachet de programe care asigura prin intermediul unei interfete toate aceste operatii:

-         editarea programului sursa

-         compilarea programului sursa

-         editarea legaturilor programului obiect

-         lansarea in executie a programului executabil

-         depanarea interactive a programului

-         memorarea programului executabil pe un support de informatie.

Aeasta intefata se numeste mediu de programare. Aceeasi interfata poate sa contina ambele forme ale limbajului: forma cu compilator si forma cu interpretor (cum este si cazul mediului de programare Turbo Pascal).

 

2.Caracteristici particulare

 

Conceptualizat in anul 1970 de catre Niklaus Wirth , limbajul PASCAL poarta  numele matematicianului si filosofului BLAISE PASCAL , in semn de recunoastere a meritelor sale in teoretizarea masinilor de calcul .

         Creat dupa acumularea de cunostiinte temeinice in stiinta limbajelor formale , din confruntarea cu probleme concrete ale programarii , limbajul PASCAL a constituit la vremea respectiva un limbaj modern , mentinandu-se ca atare si in prezent , datorita faptului ca poseda o solida baza conceptuala .

         Limbajul PASCAL a introdus in versiunea sa initiala notiunea de programare structurata si ulterior notiunile de date ( structuri ) dinamice , date (structuri ) definite de utilizator .

          In prezent standardul implementarilor PASCAL cuprinde urmatoarele elemente :

-         programare structurata de tip algoritmic ;

-         definirea de noi functii sau proceduri ;

-         tipuri de date definibile de catre utilizator ;

-         structuri de date dinamice ;

-         adresari indirecte ale datelor ;

-         recursivitate ;

-         rutine complete de intrare / iesire ;

-         functii de conversie a datelor din ASCII in format intern si invers ;

-         set complet de functii matematice ;

-         functii elementare de grafica 2D ;

-         posibilitatea inserarii direct in sursa a instructiunilor in limbaj de asamblare ;

-         posibilitatea definirii de overlay-uri pentru program .

Versiunile standard ale implementarilor PASCAL sunt cele oferite de Microsoft si Borland , cu avantaj pentru cele din urma ( TURBO PASCAL 5.0 , TURBO PASCAL 5.5 ) datorita mediului de lucru performant (de tip “TURBO“) . Combinatia PASCAL + TURBO a reprezentat un succes imens in randul programatorilor avand ca singur rival cealalta combinatie : C+TURBO.








Politica de confidentialitate

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 729
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2019 . All rights reserved

Distribuie URL

Adauga cod HTML in site