BNF, EBNF og Málrit (syntax diagrams). Flashcards
Hvað er “mál”?
Mál er einfaldlega mengi strengja.
Hvað er strengur?
Strengur er endanleg runa tákna úr einhverju mengi, sem við þá köllum táknróf eða stafróf (alphabet) málsins.
BNF stendur fyrir ?
Backus-Naur Form
Hvað er BNF?
BNF er aðferð, svokallað meta-mál, til að skilgreina mál.
Hver skilgreingdi BNF ?
John Backus, sem fann upp FORTRAN forritunarmálið og Peter Naur, ritstjóri skilgreiningarinnar á ALGOL-60 forritunarmálinu
En BNF á sér einnig rætur í málvísindum, hver skilgreindi samhengisfrjálsar mállýsingar áður en Backus og Naur skilgreindu BNF?
Málvísindamaðurinn Noam Chomsky
útleiðsla?
Þegar gefin er BNF skilgreining má yfirleitt leiða út ótakmarkaðan fjölda strengja í málinu
Mállýsing er margræð ef ?
Strenginn má leiða út á fleiri en einn hátt.
Málið er samhengisfrjálst ef?
Ef unnt er að lýsa tilteknu máli með BNF (þ.e. með samhengisfrjálsri mállýsingu)
Hvaða aðferðið eru notaðar til að lýsa málfræði forritunarmála ?
BNF, EBNF (Extended BNF) og málrit (syntax diagrams).
Hvað eru regluleg mál (regular language).
Frumeiningar forritunarmála, svo sem lykilorð, strengfastar, heiltölufastar, fleytitölufastar, o.s.frv., eru yfirleitt regluleg mál (regular language).
Regluleg mál eru undirmengi samhengisfrjálsra mála, þ.e. ?
þ.e. öll regluleg mál eru samhengisfrjáls, en ekki öfugt.
Reglulegar segðir?
Ein aðferð til að skilgreina regluleg mál er reglulegar segðir
Endanlegar stöðuvélar ?
Enn ein aðferð til að skilgreina regluleg mál.
Hvernig er EBNF?
EBNF er svipað og BNF, en þar hefur verið bætt við hugmyndum úr reglulegum segðum.
BNF | ?
Eða
-> 0|1|2|3|4
digit getur breyst í 0 eða 1,2,3 eða 4
Nonterminals í BNF?
<>, Það sem er inn í getur breyst í eitthvað annað
Hvað inniheldur BNF ?
terminals, non-terminals og production reglur
Hvað þýðir ::= í BNF?
is defined by
Hvað er LHS í BNF?
left hand side, alltaf non-terminal
Hvað er RHS í BNF?
right hand side, terminals eða non-terminals
Hvað er málrit?
BNF myndrænt
Í endanlegum stöðuvélum eru lokastöður teiknaðar hvernig?
Með tvöföldum hring.
Að breyta endanlegri stöðuvél í málrit?
Kassar samsvara stikum í stöðuvélinni
Hvernig er lokatáknin merkt sérstaklega í EBNF?
Með því að setja gæsalappir utan um þau
Hvernig má tákna endurtekningar í EBNF?
Nota má slaufusviga til að tákna endurtekningar: {X} er látið standa fyrir núll eða fleiri X.
Hvernig má tákna einstakan valkost í EBNF ?
Nota má hornklofa til að tákna einstakan valkost: [X] er látið standa fyrir núll eða eitt X.
Hvernig má aðskilja valkosti ?
Nota má | til að aðskilja valkosti: Til dæmis er (X | Y )Z jafngilt XZ | Y Z.
Hvernig má safna saman valkostum?
Nota má sviga til að safna saman: Til dæmis er (X | Y )Z jafngilt XZ | Y Z.
Samkeyting í EBNF?
Samskeyting í EBNF táknuð með aðgerðinni , (komma)