Estoy buscando teorías matemáticas que traten de describir lenguajes formales (conjunto de cadenas) en general y no solo jerarquías gramaticales.
Estoy buscando teorías matemáticas que traten de describir lenguajes formales (conjunto de cadenas) en general y no solo jerarquías gramaticales.
Respuestas:
Hay muchas posibilidades Otros ya han mencionado autómatas que ofrecen una rica selección. Considere también los siguientes marcos:
Algunos lenguajes pueden definirse directamente mediante definiciones (co) inductivas . Por ejemplo, el punto de fijación más pequeño de
es el mismo lenguaje que el descrito por(ba∣a)∗, el punto de fijación más grande es(ba∣a)ω. Tenga en cuenta que dicha definición también se puede escribir en forma de cálculo oregla de inferencia:
Las palabras definen estructuras de palabras que pueden usarse como modelos de fórmula lógica . Esencialmente, cada palabra define el dominio de sus posiciones , predica P a : D → { 0 , 1 } para que P a ( i ) ⟺ w i = a para todo a ∈ Σ , un predicado < que es < de Nrestringido a y un predicado suc : D w × D w → { 0 , 1 } que es verdadero si y solo si el segundo parámetro es el sucesor directo del puño.
Entonces, por ejemplo, si w = a a b a b a a b entonces
hecho, estafórmula de primer ordendefine --- a través del conjunto de todas las estructuras de palabras que la cumplen --- el mismo lenguaje que(ba∣a)∗. El correspondientelenguajeω(ba∣a)ωse describe mediante lafórmula LTL
Se conocen varias equivalencias entre las clases de lenguaje clásico y ciertas lógicas. Por ejemplo,FOcorresponde a idiomas libres de estrellas,MSOdébila idiomas regulares yMSOaidiomas regularesω. Veraquípara referencias.
Algo ortogonal a las clases clásicas son los lenguajes de patrones . Suponga un alfabeto terminal y un alfabeto variable X = { x 1 , x 2 , ... } . Una cadena p ∈ ( Σ ∪ X ) + se llama patrón . Deje H = { σ ∣ σ : X → Σ ∗ } el conjunto de sustituciones. Definimos el lenguaje de un patrón p como
Tenga en cuenta queσse extiende para trabajar en patrones; Los símbolos de terminal no se modifican.
Como ejemplo, considereL(x1abbax1)={wabbaw∣w∈{a,b}∗}.
Tenga en cuenta que permitimos sustituciones para eliminar variables; Algunas propiedades de la clase de lenguajes de patrones son muy diferentes para las sustituciones de eliminación frente a las de no eliminación. Los lenguajes de patrones son de particular interés en el aprendizaje al estilo Gold .
Deberías echar un vistazo a la teoría de autómatas . Hay mucho material al respecto.
Por ejemplo, puede definir un lenguaje regular con un autómata finito no determinista con bordes etiquetados: una cadena pertenece al lenguaje si el autómata puede seguir las transiciones etiquetadas por sus caracteres y se detiene en un estado final.
Además, un autómata pushdown puede reconocer una gramática libre de contexto .
Otra forma de definir idiomas es mediante las máquinas de Turing .
De la jerarquía de Chomsky hay cuatro tipos de lenguajes formales (cada uno de ellos es un subconjunto de los siguientes):
Un lenguaje formal regular puede ser descrito por:
1., 2. y 3. son equivalentes y de uno de ellos puedes construir los otros.
Un lenguaje formal sin contexto puede ser descrito por:
También 1. y 2. son equivalentes.
Un lenguaje formal sensible al contexto puede ser descrito por:
Un lenguaje formal recursivamente enumerable puede ser descrito por:
Además de las otras respuestas, uno puede describir y clasificar idiomas en términos de "generadores" y propiedades de cierre. Por ejemplo, tiene sentido hablar sobre el AFL más pequeño generado por algún lenguaje. Un buen lugar para comenzar a aprender sobre este tipo de descripción es este libro, aunque puede ser bastante difícil encontrar una copia impresa.