stringtranslate.com

Gramática adaptativa

Una gramática adaptativa es una gramática formal que proporciona explícitamente mecanismos dentro del formalismo para permitir que se manipulen sus propias reglas de producción .

Descripción general

John N. Shutt define la gramática adaptativa como un formalismo gramatical que permite manipular explícitamente conjuntos de reglas (también conocidos como conjuntos de reglas de producción) dentro de una gramática. Los tipos de manipulación incluyen la adición, eliminación y modificación de reglas. [1]

Historia temprana

La primera descripción de la adaptabilidad gramatical (aunque no bajo ese nombre) en la literatura generalmente [2] [3] [4] se considera que aparece en un artículo de Alfonso Caracciolo di Forino publicado en 1963. [5] La siguiente referencia generalmente aceptada a un formalismo adaptativo ( gramáticas extensibles libres de contexto ) provino de Wegbreit en 1970 [6] en el estudio de lenguajes de programación extensibles , seguido por la sintaxis dinámica de Hanford y Jones en 1973. [7]

Esfuerzos de colaboración

Hasta hace relativamente poco, gran parte de la investigación sobre las propiedades formales de las gramáticas adaptativas no estaba coordinada entre investigadores; solo Henning Christiansen la resumió por primera vez en 1990 [2] en respuesta a un artículo de Boris Burshteyn en ACM SIGPLAN Notices . [8] El Departamento de Ingeniería de la Universidad de São Paulo tiene su Laboratorio de Lenguajes y Técnicas Adaptativas, que se centra específicamente en la investigación y la práctica en tecnologías y teorías adaptativas. El LTA también mantiene una página que nombra a los investigadores en el campo. [9]

Terminología y taxonomía

Aunque los primeros esfuerzos hacían referencia a la sintaxis dinámica [7] y a las gramáticas extensibles [6] , modificables [10] , dinámicas [ 11] y adaptables [2] [12] , el uso más reciente ha tendido hacia el uso del término adaptativo (o alguna variante como adaptativa [13] [14] dependiendo del idioma de publicación de la literatura). [3] Iwai se refiere a su formalismo como gramáticas adaptativas [ 13] , pero este uso específico de gramáticas simplemente adaptativas no se utiliza normalmente en la actualidad en la literatura sin calificación de nombre. Además, no se han realizado esfuerzos de estandarización o categorización entre varios investigadores, aunque varios han hecho esfuerzos en esta dirección. [3] [4]

La clasificación de Shutt (y extensiones)

Shutt clasifica los modelos de gramática adaptativa en dos categorías principales: [3] [15]

Jackson refina la taxonomía de Shutt, refiriéndose a los cambios en el tiempo como globales y a los cambios en el espacio como locales , y añadiendo una categoría híbrida de tiempo-espacio : [4]

Formalismos adaptativos en la literatura

Los formalismos adaptativos pueden dividirse en dos categorías principales: formalismos gramaticales completos (gramáticas adaptativas) y máquinas adaptativas, en las que se han basado algunos formalismos gramaticales.

Formalismos gramaticales adaptativos

La siguiente es una lista (de ninguna manera completa) de formalismos gramaticales que, según la definición de Shutt, se consideran (o han sido clasificados por sus propios inventores como) gramáticas adaptativas. Se enumeran en el orden histórico de su primera mención en la literatura.

Gramáticas extensibles independientes del contexto (Wegbreit)

Descrita en la tesis doctoral de Wegbreit en 1970, [6] una gramática extensible libre de contexto consiste en una gramática libre de contexto cuyo conjunto de reglas se modifica de acuerdo con las instrucciones emitidas por un transductor de estados finitos al leer el prefijo terminal durante una derivación más a la izquierda. Por lo tanto, el conjunto de reglas varía según la posición en la cadena generada, pero esta variación ignora la estructura jerárquica del árbol sintáctico. Shutt clasificó las gramáticas extensibles libres de contexto como imperativas . [3]

Gramáticas de Christiansen (Christiansen)

Introducidas por primera vez en 1985 como gramáticas generativas [16] y luego más elaboradas, [17] las gramáticas de Christiansen (aparentemente llamadas así por Shutt, posiblemente debido a un conflicto con las gramáticas generativas de Chomsky) son una extensión adaptativa de las gramáticas de atributos . Shutt clasificó las gramáticas de Christiansen como declarativas . [3]

El lenguaje redoblante se demuestra de la siguiente manera: [17]

<programa↓ G > → <dcl↓ Gw > <cuerpo↓{ regla-w }>
donde w-regla =<cuerpo↓ G '> → w
<dcl↓ Gchw > → <char↓ Gch > <dcl↓ Gw ><dcl↓G↑<>> → <ε><char↓G↑a> → a

Gramáticas modificables de abajo hacia arriba, gramáticas modificables de arriba hacia abajo y USSA (Burshteyn)

Introducidas por primera vez en mayo de 1990 [8] y ampliadas posteriormente en diciembre de 1990 [10] , las gramáticas modificables proporcionan explícitamente un mecanismo para la adición y eliminación de reglas durante un análisis. En respuesta a las respuestas de los avisos de ACM SIGPLAN , Burshteyn modificó posteriormente su formalismo e introdujo su Analizador Universal de Sintaxis y Semántica (USSA) adaptativo en 1992. [18] Shutt clasificó estos formalismos como imperativos . [3]

Gramáticas recursivas adaptativas (Shutt)

Introducidas en 1993, las gramáticas adaptativas recursivas (RAG) fueron un intento de introducir un formalismo de Turing poderoso que mantuviera gran parte de la elegancia de las gramáticas libres de contexto . [3] Shutt se autoclasifica a las RAG como un formalismo declarativo .

Gramáticas dinámicas (Boullier)

Las gramáticas dinámicas de Boullier , introducidas en 1994, [11] parecen ser la primera familia de gramáticas adaptativas que introduce rigurosamente la noción de un continuo temporal de un análisis sintáctico como parte de la notación del formalismo gramatical en sí. [4] Las gramáticas dinámicas son una secuencia de gramáticas, en la que cada gramática G i difiere de alguna manera de otras gramáticas en la secuencia, a lo largo del tiempo. El artículo principal de Boullier sobre gramáticas dinámicas también define un analizador sintáctico dinámico, la máquina que efectúa un análisis sintáctico contra estas gramáticas, y muestra ejemplos de cómo su formalismo puede manejar cuestiones como la comprobación de tipos , los lenguajes extensibles , el polimorfismo y otras construcciones que normalmente se consideran parte del dominio semántico de la traducción de lenguajes de programación.

Gramáticas adaptativas (Iwai)

El trabajo de Iwai en 2000 [13] lleva los autómatas adaptativos de Neto [19] más allá al aplicarlos a las gramáticas sensibles al contexto . Las gramáticas adaptativas de Iwai (nótese el calificador por su nombre) permiten tres operaciones durante un análisis: ? consulta (similar en algunos aspectos a un predicado sintáctico , pero vinculada a la inspección de reglas de las que se eligen modificaciones), + adición y - eliminación (que comparte con sus autómatas adaptativos predecesores).

§-cálculo (Jackson)

Introducido en 2000 [20] y discutido más completamente en 2006, [4] el §-Cálculo (§ aquí pronunciado meta-ess ) permite la adición, eliminación y modificación explícita de producciones dentro de una gramática, así como también proporciona predicados sintácticos . Este formalismo es autoclasificado por su creador como imperativo y adaptativo , o, más específicamente, como un formalismo gramatical adaptativo espacio-temporal , y fue clasificado además por otros como un formalismo analítico . [14] [21]

El lenguaje redoblante se demuestra de la siguiente manera:

gramática ww { S::= #phi(AX<-"") R; R ::= $C('[ab]') #phi(AX<-AX C) #phi(N<=AX) N | R;};

(Nota sobre la notación: En el ejemplo anterior, las #phi(...)declaraciones identifican los puntos en la producción R que modifican la gramática explícitamente. #phi(A.X<-A.X C)representa una modificación global (en el tiempo) y la #phi(N<=A.X)declaración identifica una modificación local#phi(A.X<-"") (en el espacio). La declaración en la producción S declara efectivamente una producción global llamada AX al colocar la cadena vacía en esa producción antes de su referencia por R ).

Dispositivos adaptativos (Neto y Pistori)

Descritos por primera vez por Neto en 2001, [22] los dispositivos adaptativos fueron mejorados y ampliados posteriormente por Pistori en 2003. [23]

Adaptador (Carmi)

En 2002, [24] Adam Carmi introdujo un formalismo gramatical adaptativo basado en LALR(1) conocido como Adapser . No parece que se hayan publicado detalles específicos del formalismo.

CFG adaptativos con verificación de apariencia (Bravo)

En 2004, [14] César Bravo introdujo la noción de fusionar el concepto de verificación de apariencia [25] con gramáticas adaptativas libres de contexto , una forma restringida de las gramáticas adaptativas de Iwai, [13] mostrando que estas nuevas gramáticas, llamadas CFG adaptativas con verificación de apariencia, son potentes en términos de Turing .

Formalismos de máquinas adaptativas

Los formalismos que se enumeran a continuación, si bien no son formalismos gramaticales, sirven como base de formalismos gramaticales completos o se incluyen aquí porque son de naturaleza adaptativa. Se enumeran en el orden histórico de su primera mención en la literatura.

Autómatas de estados finitos automodificables (Shutt y Rubinstein)
Introducidos en 1994 por Shutt y Rubinstein, [26] se ha demostrado que los autómatas de estados finitos automodificables (SMFAs) son, en una forma restringida, potentes a nivel de Turing .
Autómatas adaptativos (Neto)
En 1994, [19] Neto introdujo la máquina que denominó autómata estructurado de empuje hacia abajo , el núcleo de la teoría de autómatas adaptativos desarrollada por Iwai, [13] Pistori, [23] Bravo [14] y otros. Este formalismo permite las operaciones de inspección (similares a los predicados sintácticos , como se señaló anteriormente en relación con las gramáticas adaptativas de Iwai), adición y eliminación de reglas.

Véase también

Referencias

  1. ^ Shutt, John N. "¿Qué es una gramática adaptativa?" . Consultado el 6 de febrero de 2019 .
  2. ^ abc Christiansen, Henning, "Un estudio de gramáticas adaptables", ACM SIGPLAN Notices , vol. 25, núm. 11, págs. 35-44, noviembre de 1990.
  3. ^ abcdefgh Shutt, John N., Recursive Adaptable Grammars , Tesis de maestría, Worcester Polytechnic Institute, 1993. (Revisión enmendada del 16 de diciembre de 2003).
  4. ^ abcde Jackson, Quinn Tyler, Adaptación a Babel: adaptabilidad y sensibilidad al contexto en el análisis , Ibis Publications, Plymouth, Massachusetts, marzo de 2006.
  5. ^ Caracciolo di Forino, Alfonso, "Algunas observaciones sobre la sintaxis de los lenguajes de programación simbólica", Communications of the ACM , Vol. 6, No. 8., pp. 456-460, agosto de 1963.
  6. ^ abc Wegbreit, Ben, Estudios en lenguajes de programación extensible [ enlace muerto ] , ESD-TR-70-297, Universidad de Harvard, Cambridge, Massachusetts, mayo de 1970. En formato de libro, Garland Publishing, Inc., Nueva York, 1980.
  7. ^ ab Hanford, KV y Jones, CB, "Sintaxis dinámica: un concepto para la definición de la sintaxis de los lenguajes de programación", Annual Review in Automatic Programming 7 , Pergamon Press, Oxford, págs. 115-142, 1973.
  8. ^ ab Burshteyn, Boris. "Sobre la modificación de la gramática formal en tiempo de análisis", ACM SIGPLAN Notices , vol. 25, núm. 5, págs. 117-123, mayo de 1990.
  9. ^ http://www.pcs.usp.br/~lta/union/index.php?cp=4&categoria=28 [ enlace roto ]
  10. ^ ab Burshteyn, Boris, "Generación y reconocimiento de lenguajes formales mediante gramáticas modificables", ACM SIGPLAN Notices , vol. 25 núm. 12, págs. 45-53, diciembre de 1990.
  11. ^ ab Boullier, Pierre, "Gramáticas dinámicas y análisis semántico", Informe de investigación INRIA No. 2322, agosto de 1994.
  12. ^ John Shutt originalmente llamó a sus Gramáticas Adaptativas Recursivas con el nombre de Gramáticas Adaptables Recursivas , y anota su cambio a adaptativo en esta URL: Tesis de maestría de John Shutt.
  13. ^ abcde Iwai, Margarete Keiko, Um formalismo gramatical adaptativo para linguagensdependentes de contexto , Tesis doctoral, Departamento de Ingeniería, Universidad de São Paulo, Brasil, enero de 2000.
  14. ^ abcd Bravo, César, Grámmaticas Livres de Contexto Adaptativas com verificação de aparência , Tesis doctoral, Departamento de Ingeniería Eléctrica, Universidad de São Paulo, enero de 2004.
  15. ^ Shutt, John N., "Imperative Adaptive Grammars", página web del 28 de marzo de 2001, en la URL: http://web.cs.wpi.edu/~jshutt/adapt/imperative.html
  16. ^ Christiansen, Henning, "Sintaxis, semántica y estrategias de implementación para lenguajes de programación con potentes mecanismos de abstracción", Actas de la 18.ª Conferencia Internacional de Hawái sobre Ciencias de Sistemas , vol. 2, págs. 57-66, 1985.
  17. ^ ab Christiansen, Henning, "La sintaxis y la semántica de los lenguajes extensibles", Datalogiske skrifter 14 , Universidad de Roskilde, 1988.
  18. ^ Burshteyn, Boris, "USSA–Universal Syntax and Semantics Analyzer", ACM SIGPLAN Notices , vol. 27 n.º 1, págs. 42-60, enero de 1992.
  19. ^ ab Neto, João Jose, "Autómatas adaptativos para lenguajes sensibles al contexto", ACM SIGPLAN Notices , Vol. 29 No. 9, pp. 115-124, septiembre de 1994.
  20. ^ Jackson, Quinn Tyler, "Predicados adaptativos en el análisis del lenguaje natural", Perfection , vol. 1, n.º 4, abril de 2000.
  21. ^ Okhotin, Alexander, Boolean Grammars: Expressive Power and Algorithms , Tesis doctoral, Escuela de Computación, Queens University, Kingston, Ontario, agosto de 2004.
  22. ^ Neto, João Jose, "Dispositivos adaptativos basados ​​en reglas: formulación general y estudio de caso [ enlace muerto permanente ] ", BW Watson, D. Wood (Eds.): Implementación y aplicación de autómatas, 6.ª conferencia internacional , CIAA 2001 , Lecture Notes in Computer Science , vol. 2494, Pretoria, Sudáfrica, Springer-Verlag, págs. 234-250, 23-25 ​​de julio de 2001.
  23. ^ ab Pistori, Hemerson, Tecnologia Adaptativa em Engenharia de Computação: Estado da Arte e Aplicações , Tesis doctoral, Departamento de Ingeniería Eléctrica, Universidad de São Paulo, 2003.
  24. ^ Carmi, Adam, "Adapser: un analizador adaptativo LALR(1) [ enlace muerto permanente ] ", Taller israelí sobre lenguajes de programación y entornos de desarrollo, Haifa, Israel, 1 de julio de 2002.
  25. ^ Salomaa, Arto, Lenguajes formales , Academic Press, 1973.
  26. ^ Shutt, John y Rubinstein, Roy, "Automata finito automodificable", en B. Pehrson e I. Simon, editores, Technology and Foundations: Information Processing '94 Vol. I: Proceedings of 13th IFIP World Computer Congress , Ámsterdam: Holanda Septentrional, págs. 493-498, 1994. (archivo)