Sintáxis de los lenguajes de programación


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