Está en la página 1de 4

LECCIÓN DE LENGUAJES DE PROGRAMACIÓN

I TERMINO 2018
1ER PARCIAL

1) Describa, en sus propias palabras, el concepto de ortogonalidad en el


diseño de lenguajes de programación.
La ortogonalidad en lenguajes de programación refiere a un relativamente pequeño
conjunto de constructos primitivos siendo combinado en un relativamente pequeño
número de maneras para construir las estructuras de control y de datos de un lenguaje.
Ortogonalidad está muy relacionada con la simplicidad, cuando más ortogonal el diseño
de un lenguaje, existirán menos excepciones en las reglas del lenguaje. Menos
excepciones significa que habrá un alto grado de regularidad en el diseño, lo cual hace al
lenguaje fácil de aprender, leer y entender.

2) ¿Qué implicaciones tiene la existencia de una gramática ambigua en


lenguajes de programación? ¿Cómo es posible identificar ambigüedad en
una gramática?

Una gramática que genera una forma sentencial para la cual existen dos o
más árboles de análisis sintáctico distintos, se dice que es ambigua. La
ambiguedad sintáctica de las estructuras del lenguaje es un problema
porque los compiladores frecuentemente basan la semántica de sus
estructuras en su forma sintáctica. Específicamente, los compiladores
escogen el código a ser generado para una declaración mediante la revisión
de su árbol de análisis sintáctico. Si una estructura del lenguaje tiene más de
un árbol de análisis sintáctico, entonces el significado de la estructura no
puede ser determinado singularmente.

3) Demuestre que la siguiente gramática es ambigua (tema anulado)


4) Convierta las siguientes expresiones regulares en autómatas finitos
deterministas usando el método NDFA – DFA.
a) c(ab)|(a+b)
b) j+|kl

También podría gustarte