INTERMEDIO TEMPRANO Al producirse el rompimiento cultural impuesto por los chavín se originó una diversificación cultural, es decir, los pueblos empezaron a generar sus propios patrones cul…Descripción completa
Aquí, en Coreando.es, podrás aprender coreano de una forma racional e intuitiva, que, sin embargo, no se asemeja a las formas tradicionales. En Coreando.es nos centramos en la gramática, por…Descripción completa
Descripción completa
Programacion con Matlab
maualDescripción completa
Descripción completa
arcgisDescripción completa
Descrição completa
Descripción completa
JavascriptDescrição completa
Representación de código intermedio. Existen maneras formales para representar código intermedio. Código P. Triplos. Cuádruplos. Estas notaciones simplifican la traducción de nuestro código fuente a nuestro código objeto ya que ahorran y acotan símbolos de la tabla de símbolos -> Código P n tipo de lenguaje interpretado. idiomas P!código son una especie de híbrido" que caen entre lenguajes compilados y lenguajes interpretados de la manera que se ejecuten. #l igual que un lenguaje interpretado" la programación del P!código se con$ierte en una forma binaria de forma automática cuando se ejecuta" en lugar de tener que ser compilado. %in embargo" a diferencia de un lenguaje compilado el archi$o binario ejecutable se almacena en pseudo!código" no en lenguaje de máquina. #demás" a diferencia de un lenguaje interpretado" el programa no tiene que ser con$ertida a binario cada $e& que se ejecute. 'espu(s de que se con$ierte en P!código la primera $e&" la $ersión pseudo!código se utili&a para cada ejecución adicionales. Código P )y por tanto sus programas* tienden a ser más lento que los lenguajes compilados y programas" pero más rápido que lenguajes interpretados" y por lo general tienen autori&ación para algunas funciones del sistema operati$o de bajo ni$el" pero no el acceso directo al hard+are. ,o requieren compiladores a $eces costosos" a menudo se incluyen junto con los sistemas operati$os" y algunos lenguajes de código p!son más fáciles de programar que lenguajes compilados. Ejemplos de lenguas Pcode son -a$a" Python y E// 0 E// objetos. ->Triplos En la historia de los compiladores han sido utili&adas una amplia $ariedad de representaciones intermedias como lo es la siguiente clase de representación de código intermedio de un árbol de 1 direcciones"2 para los operandos y una para la ubicación del resultado. esta clase incluye un amplio numero de representaciones diferentes entre las cuales encontramos cuadruplos y triples. la principal diferencia
entre estas notaciones y la notación postfija es que ellos incluyen referencias explicitas para los resultados de los cálculos intermedios" mientras que la notación posfija los resultados son implícitos al representarlos en una pila. •
•
3a diferencia entre triples y cuadruplos es que con los triples es referenciado el $alor intermedio hacia el numero del triple que lo creo" pero en los cuádruplos requiere que ellos tengan nombre implícitos. 3os triples tienen una $entaja ob$ia de ser mas consistente" pero ellos dependen de su posición" y hacen que la optimi&ación presente cambios de código mucho mas compleja. Para e$itar tener que introducir nombres temporales en la tabla de símbolos" se hace referencia a un $alor temporal seg4n la posición de la proposición que lo calcula. 3as propias instrucciones representan el $alor del nombre temporal. 3a implementación se hace mediante registros de solo tres campos )op" arg5" arg2*.
•
•
En la notación de tripletes se necesita menor espacio y el compilador no necesita generar los nombres temporales. %in embargo" en esta notación" trasladar una proposición que defina un $alor temporal exige que se modifiquen todas las referencias a esa proposición. 3o cual supone un incon$eniente a la hora de optimi&ar el código" pues a menudo es necesario cambiar proposiciones de lugar. na forma de solucionar esto consiste en listar las posiciones a las tripletas en lugar de listar las tripletas mismas. 'e esta manera" un optimi&ador podría mo$er una instrucción reordenando la lista" sin tener que mo$er las tripletas en si
Cada instrucción en triples presentación tiene tres campos : op, arg1, arg2.Los resultados de las respectivas sub-expresiones son indicados por la posición de expresión. Similitud con Triples representan D! " #rbol de sintaxis. Son e$uivalentes a D! al tiempo $ue representan las expresiones. %p
rg1
rg2
&
c
d
'
b
()*
'
(1*
()*
+
(2*
Triples ante el problema de optimiación código un inmovilismo mientras $ue, en la medida en $ue los resultados son posicionales " cambiar el orden o la posición de una expresión puede causar problemas.
ndirectos Triples sta representación es una me/ora sobre representación triples. Se usa punteros en lugar de su posición para almacenar los resultados. sto permite a los optimiadores libremente volver a colocar la subexpresión para producir un código optimiado.
Tripletas Indirectas • Tripletas indirectas. Solucionan el problemas de la reordenación mediante indirección • Ejemplo: – Fuente: A=B!"#/E F=!"# – $peraciones Tripletas %. &%' &%' "( !( # ). &)' &)' /( &%'( E *. &*' &*' ( B &)' +. &+' &+' =( A( &*' ,. &%' &,' =( F( &%' -. &,' !ompiladores II !udruplas