Introducción a la Computación

Cuarta evaluación parcial

  24 de Noviembre de 2004

Conteste cada una de las siguientes preguntas lo mejor que pueda (pero no use más de una página para cada respuesta, ni más de cuatro páginas en total). Para ello, es posible que necesite consultar material adicional al visto en clase. Es libre de consultar todo tipo de material siempre y cuando de la referencia de forma precisa, sin embargo, tiene prohibido consultar con cualquier persona. El plagio será fuertemente penalizado (en particular, no está permitido transcribir de ninguna fuente, sea ésta Internet, una enciclopedia, etc.) así que explique con sus propias palabras. La ortografía y la gramática serán consideradas para determinar su calificación. Entregue a más tardar a las 13:00 del Jueves 2 de Diciembre de 2004.

Pregunta 1: [5 puntos] En realidad, un ensamblador no requiere de dar un segundo paso completo sobre el texto del programa fuente, pues basta con que almacene la posición de los identificadores a los que se hace referencia pero que aún no han sido definidos. Para esto es suficiente con una tabla de referencias pendientes. Describa con detalle cómo lograr esto para obtener un ensamblador de un paso y medio.

Pregunta 2: [5 puntos] Un desensamblador es un programa que lee un programa en código máquina y reconstruye un programa fuente en lenguaje ensamblador. Esto es posible porque existe una correspondencia uno a uno entre las instrucciones del lenguaje máquina y los mnemónicos del lenguaje ensamblador. Describa con detalle el diseño de un desensamblador.

Pregunta 3: [2+3 puntos] ¿Porqué es posible que un programa esté sintácticamente bien pero semánticamente mal? Dé tres ejemplos distintos.

Pregunta 4: [3+2 puntos] Encuentre un enunciado ambiguo en español tan largo como pueda. Dé al menos dos de sus significados.

Pregunta 5: [3+1+1 puntos] Un palíndrome binario es una cadena de ceros y unos que se lee igual de izquierda a derecha o al revés. Diseñe una máquina de Turing que acepte únicamente palíndromes binarios. Muestre su funcionamiento con las cadenas 011010 y 10101.