Sunteți pe pagina 1din 9

Limbaje formale

si tehnici de compilare
2022-2023

10/3/2022 1
Compilator

• Translator, compilator
• Compilator vs. interpretor

10/3/2022 2
Translator. Compilator.
Translator: program
care traduce textul unui program, numit program sursa,
intr-un alt program, numit program obiect.
Cele doua programe sunt echivalente din punct de vedere
semantic.
Date ?
Rezultate ?
Compilator: translator
programul obiect este in cod (limbaj) masina
(sau cod al unei masini virtuale)

• Ex.: tpc, bcc, gcc


10/3/2022 3
Compilator

• Locul
compilatorului

10/3/2022 4
Compilator vs. interpretor
• Compilator
parcurge întregul program și il traduce în cod de mașină
• Interpretor: (program)
la un moment dat
– citește o singură declarație de program,
– o traduce în cod mașină Ce se afla in
– o execută memoria
calculatorului la
un moment dat?

Un compilator este mai rapid decât un interpretor.


10/3/2022 7
Limbaj de programare
• De ce e importanta specificarea limbajului de programare ?
Comunicare între:
– proiectantul limbajului,
– programatorii care scriu compilatoarele, …
– programatorii care utilizeaza compilatoarele
• Ce specificăm?
– Reguli referitoare la corectitudinea textului ca limbaj de
programare (semantică statică)
– Semanticii programelor (numită și semantică de rulare)
• Ce mecanisme se folosesc pentru specificare?
–…
10/3/2022 8
Limbaj de programare

• limbaj de programare  compilator


evolutia
specificare
limbaje

 limbaje formale

10/3/2022 9
Structura unui compilator

10/3/2022 10
Limbaje formale si tehnici de compilare. Continut
Limbaj formal Structura unui compilator

Limbaj regulare:
• gramatici regulare,
• automate finite,
• expresii regulare.

Limbaje independente de context:


• Gramatici independente de
context, automate push-down
• Gramatici speciale: LL(k), LR(k)

Gramatici de atribute

10/3/2022 11

S-ar putea să vă placă și