To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
Spanish Articles
Improved in 24 Hours
Added in 24 Hours
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

Código de tres direcciones

De Wikipedia, la enciclopedia libre

En ciencias de la computación, el código de tres direcciones (en inglés: three address code, normalmente abreviado a TAC o 3AC) es un lenguaje intermedio usado por compiladores optimizadores para ayudar en las transformaciones de mejora de código. Cada instrucción TAC tiene a lo sumo tres operandos y es típicamente una combinación de asignación y operador binario. Por ejemplo, t1 := t2 + t3. El nombre proviene del uso de tres operandos en estas declaraciones aunque instrucciones con menos operandos pueden existir.

Ya que el código de tres direcciones es usado como un lenguaje intermedio en los compiladores, los operandos normalmente no contendrán direcciones de memoria o registros concretos, sino que direcciones simbólicas que serán convertidas en direcciones reales durante la asignación de registros. Es también común que los nombres de los operandos sean numerados secuencialmente ya que el código de tres direcciones es típicamente generado por el compilador.

YouTube Encyclopedic

  • 1/3
    Views:
    585
    24 422
    8 017
  • Direcciones de Capa Tres (Ejemplo 1) - Telemática Vídeo # 12
  • Tutorial #10 HTML (XHTML) básico - Favicon - Imagen en la barra de direcciones
  • Adobe Acrobat Pro X para la oficina: Validación avanzada de campos

Transcription

Ejemplos

En este ejemplo, un cálculo está compuesto por otros más pequeños.

En el código de tres direcciones, esto sería dividido en varias instrucciones, que son más fáciles de traducir a lenguaje ensamblador. También es más sencillo detectar sub-expresiones comunes para acortar el código.

# Calcular una solución de la ecuación cuadrática
x = (-b + sqrt(b^2 - 4*a*c)) / (2*a)
t1 := b * b
t2 := 4 * a
t3 := t2 * c
t4 := t1 - t3
t5 := sqrt(t4)
t6 := 0 - b
t7 := t5 + t6
t8 := 2 * a
t9 := t7 / t8
x := t9

En este ejemplo de tipo C, un bucle almacena los cuadrados de los números del 0 al 9.

El código de tres direcciones puede tener saltos condicionales e incondicionales para acceder a la memoria. Puede tener también métodos de llamadas a funciones o puede reducir estos a saltos. De este modo, el código de tres direcciones puede ser útil en el análisis de control del flujo.

...
for (i = 0; i < 10; ++i) {
    b[i] = i*i; 
}
...
     t1 := 0                ; inicializa i
L1:  if t1 >= 10 goto L2    ; salto condicional
     t2 := t1 * t1          ; cuadrado de i
     t3 := t1 * 4           ; reserva de cuatro bytes para el almacenamiento
     t4 := b + t3           ; dirección para almacenar i*i
     *t4 := t2              ; almacenar mediante puntero
     t1 := t1 + 1           ; incrementar i
     goto L1                ; repetir bucle
L2:

Véase también

Referencias

Esta página se editó por última vez el 16 abr 2020 a las 23:22.
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.