Metasintaxis

AjustarCompartirImprimirCitar
Estructura y composición admisibles de frases y frases de un metalanguage

En lógica e informática, una metasintaxis describe la estructura y composición permitidas de frases y oraciones de un metalenguaje, que se utiliza para describir un lenguaje natural o un lenguaje de programación de computadoras. Algunos de los metalenguajes formales más utilizados para los lenguajes informáticos son la forma Backus-Naur (BNF), la forma Backus-Naur extendida (EBNF), la notación de sintaxis Wirth (WSN) y la forma Backus-Naur aumentada (ABNF).

Estos metalenguajes tienen su propia metasintaxis, cada una compuesta por símbolos terminales, símbolos no terminales y metasímbolos. Un símbolo terminal, como una palabra o un token, es una estructura independiente en un lenguaje que se está definiendo. Un símbolo no terminal representa una categoría sintáctica, que define una o más frases o estructuras de oraciones válidas que constan de un subconjunto de n elementos. Los metasímbolos proporcionan información sintáctica con fines denotacionales en una metasintaxis determinada. Los terminales, no terminales y metasímbolos no se aplican en todos los metalenguajes.

Normalmente, el metalenguaje para lenguajes a nivel de token (formalmente llamados "lenguajes regulares") no tiene no terminales porque el anidamiento no es un problema en estos lenguajes regulares. El inglés, como metalenguaje para describir ciertos idiomas, no contiene metasímbolos ya que toda explicación se puede realizar utilizando expresiones en inglés. Sólo se utilizan ciertos metalenguajes formales para describir lenguajes recursivos (formalmente llamados lenguajes libres de contexto) que tienen terminales, no terminales y metasímbolos en su metasintaxis.

Elemento de metasintaxis

  • Terminales: una estructura sintáctica independiente. Los terminales pueden ser denotados citando el nombre de los terminales.
Por ejemplo. "else" "if", "then", "while"
  • Nonterminals: una representación simbólica que define un conjunto de estructuras sintácticas permitibles que se compone de un subconjunto de elementos. Los noterminales pueden ser denotados entre corchetes el nombre de los noterminales.
Por ejemplo. , ,
  • Metasymbol: una representación simbólica que denota información sintáctica.
Por ejemplo. := |, {}, (), [], *

Métodos de terminación de frases

  • Juxtaposición: por ejemplo. A B
  • Alternación: por ejemplo. A|B
  • Repetición: por ejemplo. {A B}
  • Fracción opcional: por ejemplo. [A B]
  • Grupo: por ejemplo. (A|B)

Convenciones de metasintaxis específicas

La convención estándar

  • 'Backus-Naur form' denota símbolos noterminales entrelazando el nombre de la categoría sintáctica, mientras que denota símbolos terminales citando doblemente las palabras terminales. Las terminales nunca pueden aparecer en el lado izquierdo del metambolo ::= en una regla de derivación. El cuerpo de la definición en el lado derecho puede estar compuesto con varias formas alternativas con cada construcción sintáctica alternativa siendo separado por el metásimbol |. Cada uno de estos constructos alternativos puede ser terminal o no terminal.
  • "Forma de Backus-Naur avanzada" utiliza todas las instalaciones de BNF e introduce dos metásimas más para características adicionales. Una de estas dos nuevas características se aplica para denotar una frase opcional en una declaración entre corchetes la frase opcional. La segunda característica se aplica para denotar una frase que debe repetirse cero o más veces entre corcheteando la frase.
  • 'Wirth syntax notation' utiliza todas las instalaciones en EBNF excepto que los noterminales no están necesariamente entre corchetes, pero siempre están definidos en la mano derecha de = en su regla de producción. Tampoco exige que se defina explícitamente a cada nonterminal. Nonterminals such as y se definen implícitamente como ASCII-character y espacio blanco opcional respectivamente.
  • 'Augmented Backus-Naur form' denota símbolos noterminales iniciando un nombre de una palabra con un alfabeto como el nombre de la categoría sintáctica. No se requieren corchetes en ángulo. Los símbolos terminales son denotados por palabras citadas dobles o denotados por la siguiente estructura numérica: a %, seguido b o x o d, seguido de un valor numérico o concatenación de valores numéricos separados .. Metasymbol - se coloca entre dos valores numéricos a denota rango de valor. Como el de BNF, los terminales de ABNF nunca ocurren en el lado izquierdo del metásimbol = en la regla de derivación. Metasymbol / denotaciones alternaciones. El espacio blanco se utiliza para separar elementos en el cuerpo de la definición. La metásima para repetición en ABNF tiene varias formas. A * anterior un elemento denota el elemento a repetir cero o más veces. Valor numérico n1 seguido * seguido del valor numérico n2 seguido de un elemento denota el elemento a repetir al menos n1 veces y en la mayoría n2 veces. Un único valor numérico n anterior un elemento denota el elemento a repetir n veces. Comentarios puede ser expreso después de metásymbol ;. Como en el EBNF, entre corchetes una frase denota la frase a ser opcional.

Variaciones

La convención de metasintaxis de estos metalenguajes formales aún no está formalizada. Existen muchas variaciones o extensiones metasintácticas en el manual de referencia de varios lenguajes de programación de computadoras. Una variación de la convención estándar para denotar terminales y no terminales es eliminar metasímbolos como corchetes angulares y comillas y aplicar tipos de fuente a las palabras deseadas. En Ada, por ejemplo, las categorías sintácticas se indican aplicando una fuente sans-serif en minúsculas a las palabras o símbolos deseados. Todas las palabras o símbolos terminales, en Ada, constan de caracteres de posición de código entre 16#20# y 16#7E# (inclusivo). La definición de cada juego de caracteres se refiere a la norma internacional descrita por ISO/IEC 10646:2003. En C y Java, las categorías sintácticas se indican con fuente cursiva, mientras que los símbolos terminales se indican con fuente gótica. En J, su metasintaxis no aplica metasímbolos para describir la sintaxis de J en absoluto. Más bien, todas las explicaciones sintácticas se realizan en un metalenguaje muy similar al inglés llamado Diccionario, que está documentado únicamente por J.

Ventaja de las extensiones

El propósito de las nuevas extensiones es proporcionar una metasintaxis más simple e inequívoca. En términos de simplicidad, la metanotación de BNF definitivamente no ayuda a que la metasintaxis sea más fácil de leer, ya que los metasímbolos abiertos y cerrados aparecen en abundancia. En términos de ambigüedad, la metanotación de BNF genera una complejidad innecesaria cuando las comillas, los apóstrofos, los signos de menor o mayor que llegan a servir como símbolos terminales, lo que a menudo hacen. La metasintaxis extendida utiliza propiedades como mayúsculas y minúsculas, fuente y posición del código de los caracteres para reducir la complejidad innecesaria antes mencionada. Además, algunos metalenguajes utilizan categorías de separadores de fuentes para incorporar características metasintácticas para las convenciones de diseño, que BNF no admite formalmente.

Contenido relacionado

Ultrajuegos

Ultra Software Corporation era una corporación fantasma y un sello editorial creado en 1988 como una subsidiaria de Konami of America, en un esfuerzo por...

Control de concurrencia

Los sistemas informáticos, tanto de software como de hardware, constan de módulos o componentes. Cada componente está diseñado para operar correctamente...

Línea A20

La A20, o línea de dirección 20, es una de las líneas eléctricas que componen el bus del sistema de un sistema informático basado en x86. La línea A20...
Más resultados...
Tamaño del texto: