Monday, June 27, 2011

SW: Gramatiky

N - konecna mnozina neterminalov
T - konecna mnozina terminalov
P - konecna mnozina v tvare A->alfa, kde A je z N a alfa je N zjednotenie T
S - startovaci symbol

Bezkontextova 

G = (N,T,P,S)
Bezkontextova gramatika sa nezaobera kontextom, ale pouzivame ju k analyze programovacich jazykov.

Regularna gramatika 
je bezkontextovou gramatikou, v ktorej kazde pravidlo ma tvar A -> aB alebo A -> a, kde A,B su neterminaly a a,b su terminaly. Vynimkou je pravidlo S -> epsilon, ak sa S neobjavi na pravej strane ziadneho ineho pravidla.

LL1
Bezkontextova gramatika je LL1, ak pre kazdu dvojicu pravidiel A-> alfa | beta plati, ze

  • FIRST(alfa) zjednotenie FIRST(beta) je prazdna mnozina - inak povedane, mame len jednu moznost, ako pokracovat
  • to iste pravidlo zavedieme, ak niektora z FOLLOW obsahuje epsilon. FOLLOW zjednotenie FIRST, kde follow obsahuje epsilon a first nie je prazdna mnozina. - jedna sa zase o to, aby sposob pokracovania bol jednoznacne deterministicky. 
dalej mame este atributovu gramatiku, co je vlastne LL(1) gramatika a prechodovu gramatiku, co je vystup LL(1) gramatiky