Język kontekstowy (ang. context-sensitive language) – rodzaj języka formalnego, generowany przez gramatykę kontekstową. W Hierarchii Chomskiego jest zdefiniowany jako język typu 1.

Klasa języków kontekstowych jest właściwym podzbiorem klasy języków rekurencyjnych.

Definicje Istnieje kilka równoważnych definicji języka kontekstowego. Język L nazywamy kontekstowym wtedy i tylko wtedy, gdy:

Istnieje gramatyka kontekstowa G generująca język L. Istnieje automat liniowo ograniczony potrafiący rozstrzygnąć czy słowo x należy do języka L.

Językami kontekstowymi są wszystkie języki bezkontekstowe oraz języki regularne.

Właściwości Klasa języków kontekstowych jest zamknięta ze względu na operacje:

sumy teoriomnogościowej: iloczynu teoriomnogościowego: konkatenację: dopełnienie:

Rozstrzygnięcie, czy słowo x należy do języka kontekstowego L, jest problemem PSPACE-zupełnym.

Przykład Język słów nad alfabetem binarnym, których pierwsza połowa równa jest drugiej, jest kontekstowy (ale nie bezkontekstowy!).

– symbol startowy przechodzi w słowo puste lub

– w miejsce generowane jest słowo gdzie jest pewnym słowem binarnym, jest zaś tym samym słowem, tyle że odwróconym i przedstawionym w postaci symboli nieterminalnych i zamiast zwykłych 0 i 1

– znajdujący się najbardziej na lewo symbol słowa zostaje zaznaczony