1 - Uvod Flashcards
Č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