Sunteți pe pagina 1din 15

BALOTARIO DE PREGUNTAS PARA EL CURSO DE TEORÍA DE LENGUAJES DE

PROGRAMACIÓN

1. Describa cada uno de los componentes de un compilador.

Analizador sintáctico: analiza que el orden de los caracteres sea correcto

Generador de código: lo traduce a lenguaje de maquina

2. ¿Cuál es la función del enlazador?

El programa objeto no está completo para la ejecución:

• Las funciones han sido compiladas Independientemente; falta


enlazarlas.

• Hace llamadas a funciones que se encuentran en bibliotecas; falta


cargarlas

o establecer las referencias, módulos de librerías etc.

3. ¿Qué es un lenguaje formal?


TEORÍA DE LENGUAJES

En general, tiene que ver con:

• Especificación de conjuntos de cadenas de símbolos.

Ejemplos: Conjunto de expresiones aritméticas.

Conjunto de documentos HTML.

Conjunto de comandos DOS.

• Diseño y construcción de procesadores de cadenas de símbolos.

En particular, tiene que ver con:

• Definición de la sintaxis (estructura) de los programas en un lenguaje de

programación.

• Diseño y construcción de compiladores y otros procesadores de

lenguajes de programación.

Definición: Dado un alfabeto A, un lenguaje formal sobre A

es un conjunto de cadenas de símbolos tomados de A. Ejemplos:

Alfabeto: {0,1}

L1= {001, 1010, 11, 1}

L2= {11,101, 0}

4. ¿Qué es un alfabeto?

LENGUAJES FORMALES:

Alfabeto: conjunto de símbolos.

{a, e, i, m, p}

Cadenas, palabras, secuencias:

mama, papa, mima, mi, pipa, me

Definición: Dado un alfabeto A, un lenguaje formal sobre A

es un conjunto de cadenas de símbolos tomados de A. Ejemplos:

Alfabeto: {0,1}
L1= {001, 1010, 11, 1}

L2= {11,101, 0}

5. Dado el alfabeto A= {a, b} ¿cuántos lenguajes formales sobre A existen?

6. Describa cada uno de los componentes de una gramática formal.

GRAMÁTICA FORMAL

Definición: Una gramática formal es una cuádrupla (T, N, P, S) , donde

T es un conjunto finito de símbolos llamados TERMINALES,

N es un conjunto finito de símbolos llamados NO-TERMINALES,

P es un conjunto finito de REGLAS DE PRODUCCION y

S es un símbolo NO-TERMINAL llamado símbolo inicial.

Ejemplo: A continuación se muestra la gramática arbitrariamente llamada G1.

G1:

T: {0, 1}

N: { <digito>, <cadena binaria> }

P: 1. <cadena binaria> → <digito> | <digito> <cadena binaria>

2. <digito> → 0 | 1

S: <cadena binaria>

7. ¿Qué es el lenguaje generado por una gramática formal?


8. ¿Cuántos lenguajes pueden ser generados por una gramática? Elija entre:
solo uno, más de uno, o infinitos. Luego justifique su respuesta usando las
definiciones y ejemplos.

9. ¿Puede un lenguaje ser generado por más de un lenguaje? Justifique su


respuesta usando las definiciones y ejemplos.

10.Describa los componentes de un autómata finito determinístico.

Definición: Un autómata finito determinístico es una quíntupla (E, T, E0, δ ,


F), donde:

E es un conjunto finito de estados;

T es un conjunto finito de símbolos de entrada;

E0 es un estado denominado estado inicial;

δ es una función llamada función de transición y

F es un subconjunto de E llamado conjunto de estados finales.

• El autómata empieza siempre en el estado inicial E0 .

• El autómata recibe símbolos de entrada hasta detectar el fin de la cadena.

• Si estando en un estado s recibe un símbolo t, el autómata pasa al estado


δ (s,t).

Si δ (s,t) no está definido, el autómata rechaza la cadena recibida.

• Si al terminar la cadena, el autómata se encuentra en uno de los estados


finales, el autómata acepta la cadena; en caso contrario, la rechaza.

11.¿Puede un autómata finito determinístico tener más de un estado?

12.¿Puede un autómata finito determinístico más de un estado final? Justifique


su respuesta usando las definiciones.

13.¿Qué es un lenguaje aceptado por un autómata finito determinístico?


AUTOMATAS FINITO DETERMINÍSTICOS

Lenguaje aceptado por un autómata finito determinístico.

Definición: El lenguaje aceptado ( o lenguaje reconocido) por un autómata


finito determinístico M, denotado por L(M), es el conjunto de las cadenas
aceptadas por el autómata M.

Ejemplo: Formular un autómata finito determinístico que acepte el lenguaje

{anbm| 0<n, 0<m}

14.Muestre un lenguaje que no puede ser aceptado por un autómata finito


determinístico.

• Algunos de los lenguajes no aceptados por un AFD pueden ser aceptados


por un tipo de autómatas denominados autómatas con pila.

Ejercicio:

Formular el AFD que acepte el lenguaje {anbn |0<n }

15.Formule una expresión regular que represente al conjunto de todas las


cadenas binarias con dos o más dígitos.

16.¿Cuál es la relación que existe entre los conceptos de autómata finito


determinístico y expresión regular?

17.¿Qué es un lexema?

Lexema (ó token)

Cadena de caracteres que tiene algún significado para el lenguaje de


programación.

El conjunto de lexemas viene a ser el alfabeto de un lenguaje de


programación.

Separador

Carácter que indica el final de un lexema, pero que no forma parte del
lexema.
18.Mencione los 5 tipos de lexemas.

Tipos de lexemas

Palabras reservadas, identificadores, constantes numéricas, constantes de


cadena y símbolos especiales

19.¿En que consiste el análisis lexicográfico?

Análisis Lexicográfico

Consiste en detectar los lexemas de un programa.

Tipos de lexemas

Palabras reservadas, identificadores, constantes numéricas, constantes de


cadena y símbolos especiales.

Palabra reservada

Lexema cuyo significado y uso está definido por el lenguaje de


programación. El programador no puede darle otro significado ni uso.

Identificador

Es un nombre creado por el programador para nombrar entidades que


el crea como parte del programa: constantes, variables, tipos de dato,
funciones, clases, etc.

Símbolos especiales

Son lexemas formados por los caracteres que no son letras ni dígitos.

Sintaxis de identificadores

<identificador> -> <letra> { <letra-digito> }

<letra-digito> -> <letra> | <digito>

<letra> -> a|b|c|………|z

<digito> -> 0|1|3|4|5|6|7|8|9


20.¿Qué entidades intervienen en el análisis sintáctico?

21.Formalmente, ¿en que consiste el análisis sintáctico de una cadena?

22.Mencione las condiciones para que una gramática sea LL(1).

23.¿Por qué son convenientes las gramáticas LL(1)?

24.¿Para qué sirve el método descendente recursivo?

MÉTODO DESCENDENTE RECURSIVO PARA

CONSTRUIR ANALIZADORES SINTACTICOS

PARA GRAMÁTICAS LL(1)

• Se escribe una función para cada regla de producción.

La función se escribe de manera absolutamente


independiente de las otras reglas de producción.

• El cuerpo de la función se escribe basándose estrictamente en


el lado derecho de la regla.
25.Menciones tres características de los lenguajes imperativos.

• Imperativos:

Los programas son secuencias de instrucciones que usan variables que


cambian de valor. Estos lenguajes están basados en la arquitectura de Von
Neumann de la computadora

- Procedimentales

- Orientados a objetos

26.¿En qué consiste la arquitectura de Von Neumann?


27.¿Qué relación existe entre la arquitectura de Von Newmann y los lenguajes
imperativos?

Variable: Es una abstracción de una sección de la memoria.

Instrucción de asignación: Es una abstracción de la instrucción de máquina


que almacena datos en posición especificada de la memoria

Estructuras de control: if, while, for, etc.

Son abstracciones de las instrucciones de máquina que cambian la secuencia


de ejecución de las instrucciones del programa.

28.¿En que se basan los lenguajes funcionales?


LENGUAJES FUNCIONALES

• No están basados en la arquitectura Von Neumann.

• El concepto base es la función, en el sentido matemático.

• No existe el concepto de variable que almacena valor (estado).

• No existe la instrucción de asignación, pues las variables no existen.

• No existen estructuras de control, pues no existe el concepto de memoria, ni


de instrucciones en la memoria.

• Están basados en el concepto matemático de función


Componentes de un lenguaje funcional.

• Un conjunto de objetos a los que se aplican funciones.

• Un conjunto de funciones que aplican objetos a objetos.

• Un mecanismo para aplicar una función.

• Un conjunto de formas funcionales, que son mecanismos para construir


nuevas funciones a partir de funciones definidas

• Un mecanismo que permite dar nombre a una función


Objetos

• Átomo.

Nil es también la lista vacía.

Identificador

Número

• Lista.

( x1 x2 x3 … xn) cada xi es un objeto

Funciones

• Funciones para las operaciones aritméticas

Nil es también la lista vacía.

Identificador

Número

• Lista.

( x1 x2 x3 … xn) cada xi es un objeto


29.¿Cuál es lenguaje funcional más antiguo y conocido? Mencione los tipos de
aplicaciones.

30.¿Qué es una forma funcional?

• Formas Funcionales

Una forma funcional es una función que toma como argumentos a


funciones y produce como resultado una función.

Composición:

En base a f y g se obtiene la función f º g

Construcción:

En base a f, g, h se obtiene la función (f, g, h)

(f, g, h)(x) = ( f(x), g(x), h(x) )

Aplicación a todo:

En base a f( x) se obtiene la función f ( , , )

f ( x1,x2 ,x3 ) = (f(x1), f(x2), f(x3) )

31.Describa dos formas funcionales.

32.Escriba una expresión simbólica cuyo valor sea 3+5*2*1.

33.Describa la forma clausal general y sus casos particulares

34.Usando formas clausales exprese que Pedro es padre María, José es padre
Carlos, Carlos es padre Oscar, y Pedro es padre de José. Luego pregunte si
María tiene hermanos y quién es le padre de Carlos.

35.Describa dos formas o criterios de descomposición modular de programas.

36.Describa los conceptos de objeto, clase y herencia.

S-ar putea să vă placă și