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