You are on page 1of 5

Instituto Tecnolgico de Nuevo Len

Lenguajes y Autmatas II

Maestro: Fidencio Snchez Rueda

Cuestionario de Repaso.-

Alumno (a): Samantha Ramos Ramos

No. De control: 14480665


1.- Qu es un compilador?

Un compilador es un pequeo programa informtico, que se encarga de traducir (compilar) el


cdigo fuente de cualquier aplicacin que se est desarrollando. Un compilador es un programa
que convierte o traduce el cdigo fuente de un programa hecho en lenguaje de alto nivel, a un
lenguaje de bajo nivel (lenguaje de mquina).

2.- En qu consiste el proceso de compilacin?

Proceso de compilacin:

1. Cuando un cdigo es ledo por un compilador este entra al anlisis lxico donde se verifica
dnde empieza y termina cada instruccin, esto se hace tomando como referencia los espacios en
blanco.

2. Una vez hecho esto el analizador sintctico llama de manera repetida al analizador lxico para
que este le envi cada lnea de cdigo para ser verificada si est bien escrita en el lenguaje. Para
realizar esta verificacin se realiza por medio de un estructura llamada rbol gramatical. Ejemplo:

1. Despus entra en la etapa del analizador semntico, esta se encarga de la construccin de las
instrucciones del lenguaje, revisando que sean iguales a las definidas.

2. Luego entramos al proceso de sntesis, donde se generas el cdigo intermedio, este para ser
utilizado en la memoria de forma temporal.

3. Ahora este cdigo generado pasa por el optimizador para ser ejecutado de forma ms rpida.

4. En esta ltima etapa se genera un cdigo que sea entendible por la mquina para ser ejecutado
por la computadora.

3.- Cules son las fases del anlisis del programa fuente y en qu consisten?

La fase de anlisis supone la divisin del programa fuente en componentes, y a cada uno de ellos le
impone una estructura gramatical. Si durante el anlisis se detecta que el programa fuente est
mal formado en cuanto a la sintaxis, o que no tiene una semntica consistente, entonces debe
proporcionar mensajes informativos para que el programador pueda corregirlo.
En la fase del anlisis tambin se recolecta informacin sobre el programa fuente y se almacena en
una estructura de datos llamada tabla de smbolos, la cual se pasa junto con la representacin
intermedia a la fase de la sntesis.

4.- Describir en detalle el anlisis de lxico (llamado tambin anlisis lineal).

En la fase de anlisis lxico se leen los caracteres del programa fuente y se agrupan en cadenas que
representan los componentes lxicos. Cada componente lxico es una secuencia lgicamente
coherente de caracteres relativa a un identificador, una palabra reservada, un operador o un
carcter de puntuacin. A la secuencia de caracteres que representa un componente lxico se le
llama lexema (o con su nombre en ingls token). En el caso de los identificadores creados por el
programador no solo se genera un componente lxico, sino que se genera otro lexema en la tabla
de smbolos.

5.- Qu otro nombre recibe el anlisis sintctico y en qu consiste?

Tambin se le conoce como anlisis morfosintctico y consiste en: En esta fase, los componentes
lxicos se agrupan en frases gramaticales que el compilador utiliza para sintetizar la salida.

6.- Qu es el anlisis semntico?

La fase de anlisis semntico se intenta detectar instrucciones que tengan la estructura sintctica
correcta, pero que no tengan significado para la operacin implicada.

7.- Cul es la entrada a un compilador? Y cul es la salida?

La entrada es del compilador ser el cdigo de alto nivel y la salida es el cdigo mquina.

8.- En qu lenguaje se escribe un compilador?

Java, C, C++ , Pascal, entre otros.

9.- Para qu sirve la tabla de smbolos?

Una tabla de smbolos es una estructura de datos que usa el proceso de traduccin de un lenguaje
de programacin, por un compilador o un intrprete, donde cada smbolo en el cdigo fuente de
un programa est asociado con informacin tal como la ubicacin, el tipo de datos y el mbito de
cada variable, constante o procedimiento.

9.- En qu consiste la generacin de cdigo intermedio?

Algunos compiladores generan una representacin intermedia explcita del programa fuente, una
vez que se han realizado las fases de anlisis. Se puede considerar esta operacin intermedia como
un subprograma para una mquina abstracta. Esta representacin intermedia debe tener dos
propiedades importantes: debe ser fcil de producir y fcil de traducir al programa objeto.
10.- Cmo est constituida una gramtica de un lenguaje dado?

Para una mejor comprensin las gramticas han sido clasificadas de acuerdo a particularidades y
restricciones propias, una de ellas y la ms acertada es la formulada por Avram Noam Chomsky,
quien clasific las gramticas de acuerdo a cuatro tipos, dando origen a la Jerarqua de Chomsky en
funcin de la forma de reglas de derivacin o produccin.

Las gramticas no restringidas Tipo 0

Sensibles al contexto Tipo 1

Independientes del contexto Tipo 2

Gramticas regulares Tipo 3

La clasificacin comienza con un tipo de gramticas que pretende ser universal, aplicando
restricciones a sus reglas de derivacin, se van obteniendo los otros tres tipos de gramticas. Esta
clasificacin es jerrquica, es decir cada tipo de gramtica incluye a todos los tipos siguientes.

Los lenguajes que resultan de dichas gramticas tambin se identifican con lenguajes de tipo cero,
uno, dos y tres.

A esta jerarqua de lenguaje se le conoce como la jerarqua de chomsky.

11.- Que es el anlisis descendente o top down?

Es el proceso mediante e l cual un problema se descompone en una serie de niveles o pasos


sucesivos de refinamiento (stepwise).

El diseo descendente es una tcnica que permite disear la solucin de un problema con base en
la modularizacin o segmentacin dndole un enfoque de arriba hacia abajo (Top Down Design).
Esta solucin se divide en mdulos que se estructuran e integran jerrquicamente, como si fuera el
organigrama de una empresa.

12.- cul es la salida del anlisis descendente?

Procesa la entrada de izquierda a derecha y construcciones de derivaciones por la izquierda de una


sentencia o enunciado.

13.- En qu consiste el anlisis ascendente o bottom up?

El diseo ascendente se refiere a la identificacin de aquellos procesos que necesitan


computarizarse conforme vayan apareciendo, su anlisis como sistema y su codificacin, o bien, la
adquisicin de paquetes de software para satisfacer el problema inmediato.

14.- -Cul es la relacin entre el cdigo intermedio y el lenguaje ensamblador?


El cdigo intermedio es un cdigo abstracto independiente de la mquina para la que se generar
el cdigo objeto. El cdigo intermedio ha de cumplir dos requisitos importantes: ser fcil de
producir a partir del anlisis sintctico, y ser fcil de traducir al lenguaje objeto.

El lenguaje ensamblador, es un lenguaje de programacin de bajo nivel. Consiste en un conjunto


de mnemnicos que representan instrucciones bsicas para los computadores, microprocesadores,
microcontroladores y otros circuitos integrados programables. Implementa una representacin
simblica de los cdigos de mquina binarios y otras constantes necesarias para programar una
arquitectura de procesador y constituye la representacin ms directa del cdigo mquina
especfico para cada arquitectura legible por un programador.

15.- Cul es la relacin entre el lenguaje ensamblador y el programa objeto?

Es usado para traducir sentencias del lenguaje ensamblador al cdigo de mquina del computador
objetivo. El ensamblador realiza una traduccin ms o menos isomorfa (un mapeo de uno a uno)
desde las sentencias mnemnicas a las instrucciones y datos de mquina. Esto est en contraste
con los lenguajes de alto nivel, en los cuales una sola declaracin generalmente da lugar a muchas
instrucciones de mquina.

16.- En qu consiste la optimizacin de cdigo?

En esta fase se trata de mejorar el cdigo intermedio, de modo que resulte un cdigo de mquina
ms rpido de ejecutar.

17.- Qu es el backtracking?

Es una tcnica de programacin para hacer bsqueda sistemtica a travs de todas las
configuraciones posibles dentro de un espacio de bsqueda.