Kontextkänsligt språk

Inom formell språkteori är ett sammanhangskänsligt språk ett språk som kan definieras av en kontextkänslig grammatik (och motsvarande av en icke-sammandragande grammatik ). Kontextkänslig är en av de fyra typerna av grammatik i Chomsky-hierarkin .

Beräkningsegenskaper

Beräkningsmässigt är ett sammanhangskänsligt språk ekvivalent med en linjärt avgränsad icke-deterministisk Turing-maskin , även kallad en linjär avgränsad automat . Det är en icke-deterministisk Turing-maskin med ett band av endast celler, där är storleken på inmatningen och är en konstant associerad med maskinen. Detta betyder att varje formellt språk som kan avgöras av en sådan maskin är ett sammanhangskänsligt språk, och varje kontextkänsligt språk kan avgöras av en sådan maskin.

Denna uppsättning språk är också känd som NLINSPACE eller NSPACE ( O ( n )), eftersom de kan accepteras med linjärt utrymme på en icke-deterministisk Turing-maskin. Klassen LINSPACE (eller DSPACE ( O ( n ))) definieras på samma sätt, förutom att använda en deterministisk Turing-maskin. Uppenbarligen LINSPACE en delmängd av NLINSPACE , men det är inte känt om LINSPACE = NLINSPACE .

Exempel

Ett av de enklaste sammanhangskänsliga men inte sammanhangsfria språken är : språket för alla strängar som består av n förekomster av symbolen "a", sedan n "b", sedan n "c" (abc, aabbcc, aaabbbccc, etc.) . En superuppsättning av detta språk, kallad Bach-språket, definieras som mängden av alla strängar där "a", "b" och "c" (eller någon annan uppsättning av tre symboler) förekommer lika ofta (aabccb, baabcaccb, etc. ) och är också kontextkänslig.

L kan visas vara ett kontextkänsligt språk genom att konstruera en linjärt begränsad automat som accepterar L . Språket kan enkelt visas som varken regelbundet eller kontextfritt genom att applicera respektive pumpande lemman för var och en av språkklasserna på L .

Liknande:

är ett annat sammanhangskänsligt språk; motsvarande sammanhangskänsliga grammatik kan enkelt projiceras med början med två sammanhangsfria grammatiker som genererar meningsformer i formaten och och sedan komplettera dem med en permutationsproduktion som , en ny startsymbol och standardsyntaktisk socker.

är ett annat sammanhangskänsligt språk ("3" i namnet på detta språk är avsett att betyda ett ternärt alfabet); det vill säga, operationen "produkt" definierar ett sammanhangskänsligt språk (men "summan" definierar endast ett sammanhangsfritt språk som grammatiken och visas). På grund av produktens kommutativa egenskap är den mest intuitiva grammatiken för tvetydig. Detta problem kan undvikas med tanke på en på något sätt mer restriktiv definition av språket, t.ex. . Detta kan specialiseras till och från detta till , etc.

är ett sammanhangskänsligt språk. Motsvarande sammanhangskänsliga grammatik kan erhållas som en generalisering av de sammanhangskänsliga grammatikerna för , osv.

är ett sammanhangskänsligt språk.

är ett sammanhangskänsligt språk ("2" i namnet på detta språk är avsett att betyda ett binärt alfabet). Detta bevisades genom att Hartmanis använde pumpande lemman för vanliga och kontextfria språk över ett binärt alfabet och, efter det, skissade en linjärt avgränsad multitapeautomat som accepterar .

är en kontextkänslig språk ("1:an" i namnet på detta språk är avsett att betyda ett unärt alfabet). Detta krediterades av A. Salomaa till Matti Soittola med hjälp av en linjärt avgränsad automat över ett unärt alfabet (sidorna 213-214, övning 6.8) och även till Marti Penttonen med hjälp av en kontextkänslig grammatik även över ett enaralfabet (se : Formella språk av A. Salomaa, sidan 14, exempel 2.5).

Ett exempel på rekursivt språk som inte är kontextkänsligt är vilket rekursivt språk som helst vars beslut är ett EXPSPACE -hårt problem, säg uppsättningen av par av ekvivalenta reguljära uttryck med exponentiering.

Egenskaper för sammanhangskänsliga språk

  • Föreningen, skärningspunkten, sammanlänkningen av två kontextkänsliga språk är kontextkänslig, även Kleene plus för ett kontextkänsligt språk är kontextkänsligt.
  • Komplementet av ett sammanhangskänsligt språk är i sig sammanhangskänsligt, ett resultat som kallas Immerman-Szelepcsényi-satsen .
  • Medlemskap av en sträng på ett språk som definieras av en godtycklig kontextkänslig grammatik, eller av en godtycklig deterministisk kontextkänslig grammatik, är ett PSPACE-komplett problem.

Se även

  • Sipser, M. (1996), Introduction to the Theory of Computation , PWS Publishing Co.