Estou procurando teorias matemáticas que lidam com a descrição de linguagens formais (conjunto de strings) em geral e não apenas hierarquias gramaticais.
formal-languages
formal-grammars
mtanti
fonte
fonte
Respostas:
Existem muitas possibilidades. Outros já mencionaram autômatos que oferecem uma rica seleção. Considere também as seguintes estruturas:
Algumas línguas podem ser definidas diretamente por definições (co) indutivas . Por exemplo, o menor ponto fixo deumaw ∈ Lum w ∈ Luma⇒ ε∈L ⇒ a w ∈ L⇒ b a w ∈ L
( b a ∣ a )∗ ( b a ∣ a )ω
umaε,Wa w,a wb a wuma
é o mesmo idioma descrito por(ba∣a)∗, o maior ponto de fixação é(ba∣a)ω. Observe que essa definição também pode ser escrita naforma deregra decálculo ouinferência:
Palavras definem estruturas de palavras que podem ser usadas como modelos de fórmula lógica . Essencialmente, toda palavra define o domínio de suas posições , predicados P a : D → { 0 , 1 }, de modo que P a ( i ) ⟺ w i = a para todos a ∈ Σ , um predicado < que é < de NDW= { 1 , … , n } Puma: D → { 0 , 1 } Puma( I ) ⟺ wEu= a a ∈ Σ < < N restrita a e um predicado suc : D w × D w → { 0 , 1 } que é verdadeira se e somente se o segundo parâmetro é o sucessor direto do punho.
Assim, por exemplo, se w = a a b a b a a b entãoDW suc : DW× DW→ { 0 , 1 }
w = a a b a b a a b umaSW⊨ ∀i . ∀j . ( P b(i) ∧ suc(i,j))→¬Pb(j);a
(ba∣a)∗ ω (ba∣a)ω a□(Pb→◯(¬Pb))a
ω
fato, essafórmula de primeira ordemdefine --- através do conjunto de todas as estruturas de palavras que a preenchem --- o mesmo idioma que(ba∣a)∗. Alinguagemωcorrespondente(ba∣a)ωé descrita pelafórmula LTL
São conhecidas várias equivalências entre as classes de idioma clássico e certas lógicas. Por exemplo,FOcorresponde a linguagens livres de estrelas, fracoMSOpara linguagens regulares eMSOparawlínguas -Regular. Vejaaquipara referências.
Algo ortogonal às classes clássicas são linguagens de padrões . Suponha um alfabeto terminal e um alfabeto variável X = { x 1 , x 2 , … } . Uma corda p ∈ ( Σ ∪ X ) + é chamado de padrão . Seja H = { σ ∣ σ : X → Σ ∗ } o conjunto de substituições. Definimos a linguagem de um padrão p comoΣ X={x1,x2,…} p∈(Σ∪X)+ H={σ∣σ:X→Σ∗} p aL(p)={σ(p)∣σ∈H}.a
σ
L(x1abbax1) = { w a b b a w ∣ w ∈ { a , b }∗}
Observe queσé estendido para trabalhar em padrões; os símbolos do terminal permanecem inalterados. Como exemplo, considereL(x1abbax1)={wabbaw∣w∈{a,b}∗}.
Observe que permitimos que as substituições excluam variáveis; algumas propriedades da classe de linguagens de padrões são muito diferentes para excluir ou não excluir substituições. As linguagens de padrões são de particular interesse na aprendizagem ao estilo Gold .
fonte
Você deve dar uma olhada na teoria dos autômatos . Há muito material sobre isso.
Por exemplo, você pode definir uma linguagem regular com um autômato finito não determinístico com bordas rotuladas: uma sequência pertence ao idioma se o autômato puder seguir as transições rotuladas por seus caracteres e parar no estado final.
Além disso, uma gramática livre de contexto pode ser reconhecida por um autômato de empilhamento .
Outra maneira de definir linguagens é por meio de máquinas de Turing .
fonte
Na hierarquia de Chomsky, existem quatro tipos de linguagens formais (cada uma delas é um subconjunto das seguintes):
Uma linguagem formal regular pode ser descrita por:
1., 2. e 3. são equivalentes e de um deles você pode construir os outros.
Uma linguagem formal sem contexto pode ser descrita por:
Também 1. e 2. são equivalentes.
Uma linguagem formal sensível ao contexto pode ser descrita por:
Uma linguagem formal recursivamente enumerável pode ser descrita por:
fonte
Além das outras respostas, é possível descrever e classificar os idiomas em termos de "geradores" e propriedades de fechamento. Por exemplo, faz sentido falar sobre o menor AFL gerado por algum idioma. Um bom lugar para começar a aprender sobre esse tipo de descrição é este livro, embora possa ser bastante difícil encontrar uma cópia impressa dele.
fonte