Sintáxis de los lenguajes de programación
La sintaxis de un lenguaje de programación es la estructura
en que se organizan los distintos elementos sintácticos, como espacios,
identificadores, operadores, etc. Es decir el orden que tienen unos con
respecto a otros.
Una sintaxis se evalúa según varios criterios: que sea fácil
de leer, de escribir, de verificar (chequear en busca de errores), fácil de
traducir y que carezca de ambigüedad. Esta última significa que un mismo código
puede tener 2 o más interpretaciones o traducciones posibles, en cuyo caso no
se puede decidir que alternativa elegir.
Los elementos de la sintáxis son: alfabeto, identificadores
(nombres de variables, constantes, etc.), símbolos de operadores (+,-,etc.),
espacios en blanco, delimitadores y corchetes, palabras pregonadas (palabras
que se pueden omitir sin alterar el significado), palabras clave y reservadas
(propias del lenguaje), comentarios y expresiones.
El principal problema de una sintáxis es cómo se la define.
Para esto existen metalenguajes que permiten definir la manera en que se
combinan los símbolos y elementos. Estos metalenguajes o notaciones formales
son un conjunto de reglas que especifican el modelo de construcción de las
cadenas aceptadas por el lenguaje. Es decir que un metalenguaje es un lenguaje
que define a un lenguaje de programación. Sus elementos son símbolo
distinguido, metasímbolos y metavariables.
Símbolo distinguido: Punto de partida para la generación de
todas las cadenas.
Metasímbolos: ( | (o), ::= (es), ).Metavariables: Pueden ser
terminales o no terminales.
Terminales: Son palabras que forman los símbolos no
terminales.
No terminales: Son identificadores que tienen un definición
hecha con más metavariables, de manera que es posible reemplazarlas por sus
definiciones.
Otra manera de llamarlo a este tipo de gramáticas es
"gramáticas BNF" (Backus Naur Form), que son un metalenguaje que
define las reglas de formación de las cadenas aceptadas por un lenguaje de
programación. Fueron inventadas por Backus Naur para el desarrollo del lenguaje
de programación Algol 60.
Ejemplo: ::= {}+ |
{}+
Existe una representación visual de una gramática BNF, que
son los grafos sintácticos. Esots usan flechas, círculos y rectángulos. Sus
ventajas son que son más fáciles de entender para el ojo humano.
Una vez que tenemos definada la sintáxis de nuestro
lenguaje, el compilador deberá determinar si las cadenas de texto ingresadas
por los usuarios son válidas de acuerdo a esta sintáxis. Para esto se utilizan
árboles de análisis sintáctico y algoritmos de parsing.
No hay comentarios:
Publicar un comentario