En kontekstafhængig grammatik ( KZ-grammatik , kontekstgrammatik ) er et specialtilfælde af en formel grammatik (type 1 ifølge Chomsky-hierarkiet ), hvor venstre og højre del af alle produktioner kan være omgivet af terminal og ikke-terminal symboler.
Et særligt tilfælde af formel grammatik er også kontekstfri grammatik .
Et sprog , der kan specificeres af en CV-grammatik, kaldes et kontekstafhængigt sprog eller et CV-sprog.
En formel grammatik G=(N, T, I, P) er kontekstafhængig, hvis alle reglerne i P har formen: αAβ → αωβ
hvor A ∈ N (det vil sige et enkelt ikke-terminalt symbol), ω ∈ (N ∪ T) + (det vil sige en ikke-tom streng bestående af terminale og/eller ikke-terminale symboler), α, β ∈ ( N ∪ T)* (dvs. enhver streng bestående af terminale og/eller ikke-terminale tegn).
Følgende grammatik specificerer et kontekstfølsomt sprog :
Sådan ser aaa bbb ccc generationskæden ud:
Formelle sprog og formelle grammatikker | |
---|---|
Generelle begreber | |
Type 0 | |
Type 1 |
|
Type 2 | |
Type 3 |
|
parsing |