Sintaxis

La sintaxis de un lenguaje de programación es la definición de lo que constituye un programa gramaticalmente válido y se define por una gramática.

Formalmente podemos definir un lenguaje haciendo uso de la clasificación de Chomsky (Chomsky, 1957) de la siguiente forma.

Una gramática generativa G = (VN, VT, S, F) se dice que es de tipo i si satisface las restricciones correspondientes:

I=0: Sin Restricciones
I=1: Toda regla de reescritura en F de la Forma Q1AQ2 Q1PQ2, con Q1, Q2 y
P en (VN VT)*, A VN, y P , excepto la regla S , la cual puede estar en F, en este caso S no puede aparecer en el lado derecho de otras reglas de producción.
I=2: Si toda regla en F tiene la forma AP donde AVN y P (VN VT)*
I=3: Si toda regla en F tiene la forma A PB o AP, donde A,B VN y P
VT*

Un lenguaje es de tipo i si es generado por una gramática de tipo i. La clase o familia de lenguajes de tipo i se denota por ₤i.

Las gramáticas de tipo 0 son llamadas gramáticas estructuradas por frase. Las gramáticas de tipo 1 son llamadas sensibles al contexto. Las gramáticas de tipo 2 son llamadas de contexto libre y finalmente las de tipo 3 son llamadas gramáticas regulares.

En G:

VN: Es el conjunto de símbolos NO terminales, son los símbolos que se derivan o reescriben.

VT: Es el conjunto de símbolos terminales, son los símbolos que no se derivan o reescriben.

S: Es el símbolo inicial, es el Símbolo no Terminal a partir del cual se derivan todas las cadenas de lenguajes.

F: Es el conjunto de reglas de producción, indican las derivaciones que se pueden hacer, su forma es , y se lee: el se deriva o reescribe en

En este aspecto, por ejemplo, se busca que una gramática no sea ambigua, es decir que podamos generar una cadena con dos o más derivaciones diferentes. A demás se pueden estudiar las características de los lenguajes formalmente, el tipo de propiedades que cumplen (cerradura, distributividad, conmutatividad, etc.), las operaciones que pueden realizar entre ellos (unión, intersección, complemento, resta).

Fuente: Apuntes de Programación con lenguajes de cuarta generación de la FCA de la UNAM