You are on page 1of 9

1

INGENIERA EN SISTEMAS
COMPUTACIONALES
Materia:
LENGUAJES Y ATOMATAS II

Semestre-Grupo:
7 A
Producto Acadmico:
INVESTIGACION U III
Tema:
RECURSOS Y TIEMPO DE CODIGO INTERMEDIO
Presenta:
ELIVER CAMACHO DOMINGUEZ
Docente:
I.S.C. GABRIELA HERNANDEZ CRUZ
Fecha:
11 DE OCTUBRE DEL 2014


H. Y G. ALVARADO, VER. AGOSTO-DICIEMBRE 2014
INSTITUTO TECNOLOGICO SUPERIOR
DE ALVARADO

2
INDICE


INTRODUCCION..3


CODIGO INTERMEDIO..4



RECURSOS QUE CONSUME CADA INSTRUCCIN DE MQUINA VIRTUAL
JAVA UTILIZANDO CDIGO INTERMEDIO..6


TIEMPO QUE CONSUME EL CODIGO INTERMEDIO EN LA PLATAFORMAJAVA
(SISTEMA EN TIEMPO DE EJECUCIN)......7



CONCLUSION..8


REFERENCIA..9



3

INTRODUCCION
A continuacin se presenta una investigacin acerca de los recursos y
tiempo que consume cada instruccin de cdigo intermedio.
Los lenguajes intermedios nos sirven para representar la produccin final
de nuestro lenguajefuente. Existen muchos lenguajes intermedios, la mayora de
ellos son una representacin ms simplificada del cdigo original para facilitar la
traduccin hacia el cdigo final. Otros lenguajes intermedios sirven de base o
como representacin parcial de otros procesos. Por ejemplo al compilar un
programa en C en Windows o DOS, se produce un cdigo objeto con extensin
.obj para que posteriormente el enlazador cree finalmente el cdigo ejecutable














4

CODIGO INTERMEDIO
Es un cdigo abstracto independiente de la mquina para la que se
generar el cdigo objeto.
Cumple dos requisitos importantes:
Ser fcil de producir a partir del anlisis sintctico.
Ser fcil de traducir al lenguaje objeto.

Implementacin de los tercetos:
Los tercetos fueron implementados a travs de herencia. Diseamos una
clase padre c_terceto, que contena los campos comunes a todos los tercetos
(todos), y que declaraba una serie de mtodos virtuales como show y
generar_codigo. Cada objeto hijo de la clase c_terceto, implementa cada uno de
esos mtodos, de manera que acabada la optimizacin del cdigo intermedio, solo
tenemos que ir llamando al mtodo generar_codigo del terceto contenido en la
lista.
Tercetos empleados:
BRANCH genera el salto cuando la condicin no se cumple.
PUSH solamente se usa para introducir los parmetros antes de una
llamada a funcin o a constructor.
RET se emplea para indicar el valor a devolver por la subrutina.
PUSHN y POPN se emplean para indicar al generador de cdigo
final el nmero de temporales que van a ser necesarios (PUSHN) o los que han
dejado de serlo (POPN).
PROMPT y DOCWRI fueron implementados como tercetos aparte
para mejorar la claridad de los listados de los tercetos. En realidad, podamos
haberlos implementado a travs de los tercetos PUSH, CALL y RET.
CTE_CAD no van insertados junto con el resto de tercetos, sino que
van en una lista auxiliar especial.

5
For Do Funcin While break Switch if else Bloque Estructuras de
control.
Formas de cdigo intermedio:
rbol sintctico
Notacin Postfija
Cdigo de tres direcciones
Es una especie de cdigo mquina de la forma general:
X:=y p. Z
o No se permite ninguna expresin aritmtica compuesta, pues solo
hay operadores del lado derecho de la proposicin.
o Expresiones compuestas se descomponen en una secuencia
generando elementos temporales.
o La notacin postfija pone el operador al final de los dos operando.
o Permite demostrar que una secuencia de caracteres es una
determinada categora sintctica.
t1=2*a t2=b-3 t3=t1+t2 2*a+ (b





6
RECURSOS QUE CONSUME CADA INSTRUCCIN DE
MQUINA VIRTUAL JAVA UTILIZANDO CDIGO INTERMEDIO.

La Mquina Virtual Java es el ncleo del lenguaje de programacin Java.
De hecho, es imposible ejecutar un programa Java sin ejecutar alguna
implantacin de la MVJ. En la MVJ se encuentra el motor que en realidad ejecuta
el programa Java y es la clave de muchas de las caractersticas principales de
Java, como la portabilidad, la eficiencia y la seguridad.

Siempre que se corre un programa Java, las instrucciones que lo
componen no son ejecutadas directamente por el hardware sobre el que subyace,
sino que son pasadas a un elemento de software intermedio, que es el encargado
de que las instrucciones sean ejecutadas por el hardware. Es decir, el cdigo Java
no se ejecuta directamente sobre un procesador fsico, sino sobre un procesador
virtual Java, precisamente el software intermedio del que habamos hablado
anteriormente.
La representacin de los cdigos de instruccin Java (bytecode) es
simblica, en el sentido de que los desplazamientos e ndices dentro de los
mtodos no son constantes, sino que son cadenas de caracteres o nombres
simblicos. Estos nombres son resueltos la primera vez que se ejecuta el mtodo,
es decir, el nombre simblico se busca dentro del archivo de clase (.class) y se
determina el valor numrico del desplazamiento. Este valor es guardado para
aumentar la velocidad de futuros accesos. Gracias a esto, es posible introducir un
nuevo mtodo o sobre escribir uno existente en tiempo de ejecucin, sin afectar o
romper la estructura del cdigo.



7
TIEMPO QUE CONSUME EL CODIGO INTERMEDIO EN LA
PLATAFORMA JAVA (SISTEMA EN TIEMPO DE EJECUCIN)
Se utiliza el trmino "Mquina Virtual Java", para referirse a la
especificacin abstracta de una mquina de software para ejecutar programas
Java. La especificacin de esta mquina virtual, define elementos como el formato
de los archivos de clases de Java (.class), as como la semntica de cada una de
las instrucciones que componen el conjunto de instrucciones de la mquina virtual.
A las implantaciones de esta especificacin se les conocen como "Sistemas en
Tiempo de Ejecucin Java".







8
CONCLUSION

Recordemos que De acuerdo con la clase de cdigo intermedio (por
ejemplo, cdigo de tres direcciones o cdigo P) y de las clases de optimizaciones
realizadas, este cdigo puede conservarse como un arreglo de cadenas de texto,
un archivo de texto temporal o bien una lista de estructuras ligadas. En los
compiladores que realizan optimizaciones complejas debe ponerse particular
atencin a la seleccin de representaciones que permitan una fcil reorganizacin.




















9
REFERENCIA

http://es.wikipedia.org/wiki/Compilador
http://www.cvc.uab.es/shared/teach/a25002/Codigo%20intermedio.pdf
http://es.slideshare.net/blankardz/cdigo-intermedio-5717987

You might also like