¿Hay otras formas de describir lenguajes formales además de las gramáticas?


22

Estoy buscando teorías matemáticas que traten de describir lenguajes formales (conjunto de cadenas) en general y no solo jerarquías gramaticales.


Tenga en cuenta que hay muchos, muchos tipos de gramática más allá de los clásicos de Chomsky, por ejemplo , gramáticas múltiples , acopladas y libres de contexto dependientes de la longitud , respectivamente (fácilmente googleables).
Raphael

Encontré una tabla de Wikipedia
Anton

Respuestas:


14

Hay muchas posibilidades Otros ya han mencionado autómatas que ofrecen una rica selección. Considere también los siguientes marcos:

  1. 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(baa), el punto de fijación más grande es(baa)ω. Tenga en cuenta que dicha definición también se puede escribir en forma de cálculo oregla de inferencia:a εLwLawLawLbawLa
    (baa)(baa)ω
    aε,waw,awbawa

  2. 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 NDw={1,,n}Pa:D{0,1}Pa(i)wi=aaΣ<<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 entoncesDwsuc:rew×rew{0 0,1}
    w=unaunasiunasiunaunasi
    hecho, estafórmula de primer ordendefine --- a través del conjunto de todas las estructuras de palabras que la cumplen --- el mismo lenguaje que(baa). El correspondientelenguajeω(baa)ωse describe mediante lafórmula LTLunaSwyo.j. (PAGSsi(yo)  suc(yo,j))¬PAGSsi(j);una
    (siunauna)ω(siunauna)ω
    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.una(PAGSsi(¬PAGSsi))una
    ω

  3. 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ΣX={X1,X2,...}pags(ΣX)+H={σσ:XΣ}pags
    Tenga en cuenta queσse extiende para trabajar en patrones; Los símbolos de terminal no se modifican. Como ejemplo, considereL(x1abbax1)={wabbaww{a,b}}.unaL(pags)={σ(pags)σH}.una
    σ
    L(X1unasisiunaX1)={wunasisiunaww{una,si}}
    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 .


5

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 .


5

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. Gramática regular
  2. Autómata finito (determinista / no determinista)
  3. Expresión regular

1., 2. y 3. son equivalentes y de uno de ellos puedes construir los otros.

Un lenguaje formal sin contexto puede ser descrito por:

  1. Gramática sin contexto
  2. Pushdown autómata

También 1. y 2. son equivalentes.

Un lenguaje formal sensible al contexto puede ser descrito por:

  1. Autómata lineal acotado (máquina de Turing con cinta restringida)

Un lenguaje formal recursivamente enumerable puede ser descrito por:

  1. Máquina de Turing total

¿Y todas las otras clases de idiomas?
Raphael

¿Y los idiomas sin clase?
Dave Clarke

Chomsky no dice que estos son los únicos tipos de idiomas: son solo cuatro tipos que él considera importantes, y todavía los encontramos importantes, pero hay muchos otros tipos.
reinierpost

5

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.