Deterministyczny lub niedeterministyczny automat skończony rozpoznaje tylko zwykłe języki, które są opisane za pomocą wyrażeń regularnych. Definicja wyrażenia regularnego jest prosta. Niech to jest alfabet. Następnie pusty zbiór, pusty ciąg i każdy element S są wyrażeniami regularnymi (ponad S). Niech wyrażenia regularne będą wyrażeniami regularnymi. Następnie związek (u | v), konkatenacji (uv) i zamknięcie (u *) z u i v są wyrażenia regularne ponad S. Ta definicja jest łatwo rozszerzona na zwykłe języki. Żadne inne wyrażenie nie jest wyrażeniem regularnym. Jak wskazano, niektóre referencje zwrotne są przykładem. Strony Wikipedii dotyczące zwykłych języków i wyrażeń są dobrymi referencjami.
W gruncie rzeczy niektóre "wyrażenia regularne" nie są regularne, ponieważ nie można skonstruować żadnego automatu określonego typu, aby je rozpoznać. Na przykład, w języku
{A^i B^I: i < = 0}
nie jest prawidłowe. Dzieje się tak dlatego, że automat akceptujący wymagałby nieskończenie wielu stanów, ale automat akceptujący zwykłe języki musi mieć skończoną liczbę stanów.
To prawdopodobnie powinno być wspólnotowe wiki –
@webdestroya: Rozumiem CW, ale dlaczego nie na SO? – BoltClock
@NullUser - Czy nie jest to dość subiektywne pytanie? –