Pravidelný jazyk
pravidelný jazyk je formální jazyk (tj. možná nekonečný soubor konečných sledů symbolů od konečné abecedy) to uspokojí následující rovnocenné vlastnosti:- to může být přijímané deterministický konečný státní automat.
- to může být přijato non-deterministický konečný státní automat
- to může být popsané pravidelným výrazem.
- to může být vytvořeno pravidelnou gramatikou
- to může být přijímané nepřepisovatelný Turing stroj
Výsledek odboru, křižovatky a souboru-operace rozdílu když platil o pravidelných jazycích je sám pravidelný jazyk; doplněk každého pravidelného jazyka je pravidelný jazyk také. Reverzní každý řetězec v pravidelném jazyce vydává další pravidelný jazyk. Concatenating dva pravidelné jazyky (ve smyslu pro concatenating každý řetězec od prvního jazyka s každým řetězcem od sekundy jeden) také vydává pravidelný jazyk. Míchat operaci, když platil o dvou pravidelných jazycích, vydává další pravidelný jazyk. pravý kvocient a levý kvocient pravidelného jazyka libovolným jazykem je také pravidelný.
To lokalizuje pravidelné jazyky v Chomsky hierarchii, jeden poznamená, že každý pravidelný jazyk je kontext-volný. Hovořit je ne pravdivý: například jazyk sestávat ze všech řetězců mít stejné číslo ' s jak b' s je kontext-volný ale ne pravidelný. Se ukázat jako to jazyk takový jak toto není pravidelná, jedna použití Myhill-Nerode teorém nebo lemma čerpání.
Jsou tam dva čistě algebraické přístupy k definovat pravidelné jazyky. Jestliže a Sigma; je konečná abeceda a a Sigma; * označí uvolnit monoid přes a Sigma; sestávat ze všech řetězců přes a Sigma;, f : a Sigma; * -> M je homomorphism monoid kde M je konečný monoid, a S je podmnožina M, pak soubor f -1(S) je pravidelný. Každý pravidelný jazyk vzniká v této módě.
Jestliže L je nějaká podmnožina a Sigma; *, jeden definuje vztah rovnocennosti ~ na a Sigma; * takto: u ~ v je definován mínit
- uw v L jestliže a jen když vw v L pro všechny w v a Sigma; *
- Oddělení informatiky u univerzity Westerna Ontario: Grail +, http://www.csd.uwo.ca/research/grail/. sada programů manipulovat s pravidelnými výrazy, konečný-říci stroje a konečné jazyky. Volný pro non-komerční použití. \ n