1 - Uvod Flashcards
(43 cards)
Čemu služi specifikacija programskog jezika?
Da se zna:
- kakav je i šta radi određeni jezik
- kako ga implementirati
- za sporazumevanje između projektanta jezika, implementatora jezika i korisnika (programera)…
Šta obuhvata specifikacija jezika?
Sintaksu i semantiku
Šta je sintaksa?
Gramatika jezika
Šta je semantika?
Značenje jezika
Šta znači CFG specifikacija sintakse?
Context Free Grammar (Bezkontekstna gramatika)
Šta su bezkontekstne gramatike?
Sintakse gde pravila smene ne zavise od okružujućeg konteksta neterminalnog simbola.
Šta čini bezkontekstne gramatike?
- konačan skup terminalnih simbola
- konačan skup neterminalnih simbola
- startni (početni) simbol
- konačan skup smena
U kojoj notaciji se često pišu bezkontekstne gramatike?
U BNF notaciji (Backus-Naur Form)
Za šta se koristi BNF notacija?
Za definisanje sintakse programskih jezika
Kako se piše smena u BNF notaciji?
N::=α
Kako skraćeno možemo da napišemo
N::=α
N::=ß
…
u BNF notaciji?
N::=α | ß | …
U BNF notaciji za smenu N::=α, šta je N a šta je α?
N je neterminal
α je sekvenca terminala i neterminala
U BNF notaciji, šta je N::=α | ß | …
Skraćenica za nekoliko pravila sa levom stranom N
Koja je alternativna notacija BNF notaciji N::=α ?
<N> → α
</N>
Šta definiše CFG?
Definiše jezik te gramatike (skup nizova terminala).
U primeru ispod, koje statičko semantičko pravilo nije ispoštovano?
const m~2;
m + x
x je nedefinisano
→ pravilo opsega važenja nije ispoštovano
U primeru ispod, koje statičko semantičko pravilo nije ispoštovano?
const m~2;
var n: Boolean;
begin
n := m < 4;
n := n + 1
pogrešan tip
→ pravilo tipa nije ispoštovano
Kada se pravila statičke semantike mogu proveriti?
Od strane kompajlera, bez izvršavanja programa
Kakve vrste semantike postoje?
Statička i izvršna (run-time) semantika
Šta se radi sa izrazima u izvršnoj semantici?
Izrazi se izračunavaju i daju vrednost (i mogu ali ne moraju imati bočne efekte).
Šta se radi sa iskazima u izvršnoj semantici?
Iskazi se izvršavaju i proizvode bočne efekte.
Šta se radi sa deklaracijama u izvršnoj semantici?
Deklaracije se elaboriraju da proizvedu vezivanja.
Šta mogu biti bočni efekti u izvršnoj semantici?
- promena vrednosti promenljive
- obavljanje ulaza/izlaza
Kako se izvršava iskaz V := E (semantički neformalno)?
- izraz E se izračuna i daje vrednost v
- v se dodeljuje promenljivoj V