Compilatoare

Proiect
8/10 (1 vot)
Domeniu: Calculatoare
Conține 1 fișier: docx
Pagini : 22 în total
Cuvinte : 5694
Mărime: 173.12KB (arhivat)
Publicat de: Noris Maxim
Puncte necesare: 6
Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei
Universitatea Politehnica Bucuresti, Bucuresti

Cuprins

  1. 1.Introducere
  2. 2.Compilator
  3. 2.1. Ce este un compilator?
  4. 2.2. Ce este compilarea?
  5. 2.3. Structura si fazele compilatorului
  6. 2.3.1. Structura generala
  7. 2.3.2. Structura detaliata
  8. 3.Limbaj de programare
  9. 3.1. Ce este un limbaj de programare?
  10. 3.2. Clasificarea limbejelor de programare
  11. 3.3. Limbaje de programare de nivel inalt
  12. 3.3.1. Limbajul C
  13. 3.3.2. Limbajul Java
  14. 3.3.3. Limbajul Pascal
  15. 4. Analiza lexicala
  16. 5. Analiza sintactica
  17. 6. Analiza semantica
  18. 7. Compilatorul Microsoft Cl.exe si compilatoarele Gcc din Linux
  19. 7.1. Compilatorul Microsoft Cl.exe
  20. 7.2. Compilatoarele Gcc din Linux
  21. 7.3. Compilarea in general
  22. 7.3.1. Preprocesarea C
  23. 7.3.2. Analiza si translatarea
  24. 7.3.3. Asamblare
  25. 7.3.4. Link-editarea ( editarea legaturilor )

Extras din proiect

Grace Murray Hooper a fost o figură importantă în domeniul informaticii. Aceasta a fost un ofiţer în marina militară a Statelor Unite ale Americii şi un pionier în domeniul informaticii.

Mai important, ea a dezvoltat primul compilator pentru un limbaj de programare. În 1952 ea crease un compilator funcţional. „Nimeni nu m-a crezut. Aveam un compilator funcţional şi nimeni nu voia să se atingă de el. Mi-au spus că computerele vor face doar aritmetică“, a spus ea.

La sfarsitul anilor 1950, au fost propuse limbajele de programare independente, care ruleaza pe diferite tipuri de procesoare si microarhitecturi. Ulterior, au fost concepute mai multe compilatoare experimentale.

Primul compilator a fost realizat de Grace Hooper in 1952 pentru limbajul programare A-0. Echipa FORTRAN, de la IBM, condusa de John Backus este cunoscuta ca fiind cea care a introdus primul compilator, in 1957. COBOL a fost in 1960 un limbaj timpuriu compilat pe multiple arhitecturi

Cât a lucrat la IBM, Hooper, alături de alţi programatori, a inventat limbajul de programare Cobol, care a fost utilizat în marile întreprinderi cât şi în instituţiile financiare.

2. Compilator

2.1. Ce este un compilator ?

Un compilator este o aplicaţie software ce realizează translatarea codului scris în limbaj de programare de nivel înalt în cod maşină.

Compilatorul este un program (sau set de programe) ce interpreteaza textul scris in limbajul sursa in alt limbaj, numit limbajul “target”. Succesiunea originala este numita, de obicei, codul sursa, iar output-ul este codul obiect. In mod obisnuit, iesirea are o forma potrivita pentru procesarea de catre alte programe (de exemplu, linker), dar poate fi un fisier text human-readable.

Motivul pentru care dorim sa interpretam codul sursa este de a crea un program executabil. Numele “compilator” este folosit in principal, la programele care interpreteaza codul sursa dintr-un limbaj de programare de nivel superior intr-un limbaj de nivel inferior (de exemplu, limbaj de asamblare sau limbaj masina).

Programul care interpreteaza un limbaj de un nivel inferior intr-unul de un nivel superior, se numeste decompilator.

Programul care interpreteaza limbaje de nivel superior se numeste, de obicei, traducator de limbaj, traducator sursa la sursa sau convertor de limbaj.

Limbajul de rescriere este un program care interpreteaza forma expresiilor fara sa schimbe limbajul.

Un compilator executa majoritatea operatiunilor urmatoare: analiza lexicala, preprocesare, analiza unui text, analiza semantica, generarea codului si optimizarea codului.

2.2. Ce este compilarea?

Compilarea este procesul de translatare a codului scris într-un limbaj structurat de programare în instrucţiuni specifice procesorului pe care urmează să ruleze aplicaţia respectivă, în cod maşină, insa, spre exemplu instrucţiunea repetitivă for este echivalentă cu 4 instrucţiuni în limbaj de asamblare. Din acest motiv, scrierea unui program în cod maşină este foarte anevoioasă.

Compilarea este realizată cu ajutorul compilatoarelor. Procesul de compilare depinde de sistemul de operare utilizat şi de arhitectura hardware folosită. Compilatorul utilizat în LINUX pentru compilarea unui program C scris pentru arhitectura hardware x86 diferă de compilatorul utilizat sub Windows pentru compilarea aceluiaşi cod sursă.

Compilarea are loc dacă în codul sursă nu sunt detectate erori de sintaxă. Compilatoarele nu detectează erorile logice cum sunt împărţirile la 0.

În urma procesului de compilare, rezultă un fişier binar(obiect). Funcţie de sistemul de operare, acest fişier va fi legat cu alte fişiere necesare rulării programului (librării de funcţii, resurse) rezultând un fişier cu extensia exe subWindows sau bin în Linux.

2.3. Structura si fazele compilatorului

Procesul de compilare a unui program are loc in mai multe faze. O faza este o operatie unitara in cadrul careia are loc transformarea programului sursa dintr-o reprezentare in alta.

Principalele faze ale unei compilari sunt prezentate mai jos :

2.3.1. Structura generala

2.3.2. Structura detaliata

Fazele unui proces de compilare se pot înlantui, în principiu, în doua moduri:

La iesirea fiecarei faze se va genera un fisier intermediar continand forma de reprezentare a programului sursa rezultata in faza respectiva, fisier care va constitui intrare pentru faza urmatoare. In acest caz, in fiecare faza va avea loc cel putin o parcurgere a programului sursa, de la inceput la sfarsit. O asemenea parcurgere se numeste trecere.

Bibliografie

Addison Wesley - Compilers: Principles, Techniques and Tools - Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman

- Addison Wesley - Compiler Design - Formal Syntax And Semantics Of Programming Language (1995)

- Luca - Dan Serbanuti - Limbaje de Programare si Compilatoare - Ed. Academiei Republicii Socialiste Romania, Bucuresti, 1987

- Morgan Kaufmann - Engineering A Compiler.pdf

- https://gcc.gnu.org/onlinedocs/gcc/index.html#toc_Standards

- http://en.wikipedia.org/wiki/GNU_Compiler_Collection

- http://en.wikipedia.org/wiki/Backus-Naur_form

- http://rrg.utcluj.ro/cb/Laborator_9.pdf

- http://cursuri.cs.pub.ro/~cpl/Curs/CPL-Curs01.pdf

- https://docs.python.org/3/reference/lexical_analysis.html

- http://ocw.cs.pub.ro/courses/uso/laboratoare/laborator-03

- http://labs.cs.upt.ro/labs/lft/html/LFT03.htm

Preview document

Compilatoare - Pagina 1
Compilatoare - Pagina 2
Compilatoare - Pagina 3
Compilatoare - Pagina 4
Compilatoare - Pagina 5
Compilatoare - Pagina 6
Compilatoare - Pagina 7
Compilatoare - Pagina 8
Compilatoare - Pagina 9
Compilatoare - Pagina 10
Compilatoare - Pagina 11
Compilatoare - Pagina 12
Compilatoare - Pagina 13
Compilatoare - Pagina 14
Compilatoare - Pagina 15
Compilatoare - Pagina 16
Compilatoare - Pagina 17
Compilatoare - Pagina 18
Compilatoare - Pagina 19
Compilatoare - Pagina 20
Compilatoare - Pagina 21
Compilatoare - Pagina 22

Conținut arhivă zip

  • Compilatoare.docx

Alții au mai descărcat și

Arhitectura calculatoarelor - Intel vs AMD

Rezultatele din testul 3DS Max 7 SPECapc Test Testul alaturat consta in crearea modelelor 3D, modificarea si randarea scripturilor. Conform...

Autentificarea prin semnătură digitală

Introducere O semnatura digitala reprezinta o informatie care il identifica pe expeditorul unui document. Semnatura digitala este creata prin...

Sistem de Prognosticare a Unei Avarii

Acest sistem calculeaza gradul de avariere a unei cladiri în cazul unui cutremur, precum si posibila necesitate a reconstructiei cladirii (partiala...

Test grilă tehnologia informației și comunicațiilor

1) Care tip de computer este folosit pentru lucru cu baze mari de date: 1. Calculatoarele de tip desktop 2. PDA (Personal Digital Asistent) 3....

Compilatoare

Proiectarea compilatoarelor Capitolul 1 Analiza lexicala § 1.1. GENERALITATI Obiectivele analizei lexicale Ca prima faza a procesului de...

Te-ar putea interesa și

Aplicație web de licitații online

Cuvant Inainte Aplicatiile distribuite sînt de o buna perioada de timp o prezenta uzuala în peisajul IT chiar si din tara noastra. Ultimii ani au...

Securitatea Informațiilor la Dispozitive Mobile

INTRODUCERE În ziua de azi, a fi informat reprezintă o caracteristică a celor care ies învingători în orice domeniu. Informaţiile sunt foarte...

Proiect - Record MidLet

Introducere în Java ME Telefoanele mobile sunt mai numeroase decât calculatoarele ca metodă de conectare la internet, iar trendul va continua. Cu...

Limbaje formale și proiectarea compilatoarelor

Scopul lucrării: 1.Pentru gramatica formală G=(VN, VT, P, S) construiţi 5 şiruri care aparţin limbajului L(G) generat de această gramatică....

Audit Financiar

Test iniţial În vederea evaluării iniţiale a demersului formativ în Audit financiar, vă rugăm să completaţi această pretestare, răspunzând sincer...

Compilatoare

Evolutia vietii este insotita de o permanenta acumulare de experienta statistica, dobandita prin incercari directe ale unor subiecti activi....

Programare II - limbajul C

Cap 1 INTRODUCERE ÎN LIMBAJUL C 1.1 Scurt istoric 1.2 Forma unui program C 1.3 Compilarea unui program C 1.1 Scurt istoric Strămoşii...

Tehnici de Compilare

În acest capitol vom vedea ce este un compilator si vom descrie pe scurt fazele si componentele unui compilator. Spus simplu, un compilator este...

Ai nevoie de altceva?