¿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(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:a⇒ ε∈Lw∈L⇒aw∈Law∈L⇒baw∈La
    (ba∣a)∗(ba∣a)ω
    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(ba∣a)∗. El correspondientelenguajeω(ba∣a)ωse describe mediante lafórmula LTLunaSw⊨∀yo.∀j. (PAGSsi(yo) ∧ suc⁡(yo,j))→¬PAGSsi(j);una
    (siuna∣una)∗ω(siuna∣una)ω
    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)={wabbaw∣w∈{a,b}∗}.unaL(pags)={σ(pags)∣σ∈H}.una
    σ
    L(X1unasisiunaX1)={wunasisiunaw∣w∈{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.