Logo Studenta

) es la función que se encarga de realizar una copia en profundidad de un objeto. Esta copia se podría realizar de tres formas: La primera es llama...

) es la función que se encarga de realizar una copia en profundidad de un objeto. Esta copia se podría realizar de tres formas: La primera es llamada copia superficial; esta no copia referencias o instancias internas al objeto. La segunda es denominada copia en profundidad; ésta hace una copia de todas las referencias o instancias internas al objeto. El tercero y último es conocida como clonación mixta en métodos, en la que intervienen las dos primeras formas; clonación superficial y en profundidad. En la definición se observa en la Tabla 4.6 que se aplica conjuntamente el manejo de métodos como el de atributos. En este cálculo se hará la diferencia entre métodos y atributos. La siguiente cláusula puede mostrar la manera de generar la definición de un atributo. Atributo: [. . . , l = b, . . .] =[. . . , l = ς(x)b, . . .] para x /∈ FV (b) Selección: o.l =o.l Actualización: o.l # b =o.l # ς(x)b para x /∈ FV (b) Tabla 4.6: Definición de un atributo En la implantación de este paradigma se ha establecido que los métodos no activen a ninguna sentencia aif , por lo que se usará un cálculo para definir un método y otro para un atributo. 4.5.1. Análisis de procedimientos En la especificación de βς − cálculo de manera funcional todo es expresado por medio de funciones. En βς − cálculo imperativo se puede expresar procedimientos. Para ello, se considerará el uso de llamadas por valor con efectos laterales. Esto puede expresarse en función de λ− cálculo. 4. Paradigma Proactivo 85 a.b := Términos x Variable x := a Asignación λ(x)b Abstracción b(a) Aplicación Tabla 4.7: La sintaxis de un imperativo λ− cálculo 4.5.2. Semántica operacional La semántica operacional es expresada en función de una relación. Esta relación se encuentra dada por un sistema de almacenamiento σ (Store) y una pila S (stack) y con un término b que se reduce a v, este último se coloca en σ′. σ · S + b = v · σ′ La intención de realizar esto es que se inicie con el store σ (que juega el papel de heap) y el stack S, el término a reduce a un resultado v, cediendo una actualización al store σ′ y dejando el stack S sin cambios. Las siguientes entidades implicadas en la semántica pertenecen a las clases definidas en la Figura 3: ι ∈ Nat localización de almacenamiento v ::= [li = ιi i∈1..n, mj = ιj j∈1..n] resultado (li y mj distintas) S ::= (xi 1→ vi)i∈1..n pila (stack) (xi distintas) σ ::=(ιi 1→ 〈ς(xi)bi, Si〉 i∈1..n, ιj 1→ 〈ς(xj)if(cj)aj : bj〉 j∈1..n) almacenamiento (store) (ιi y mj distintas) σ + ♦ juicio para almacenamiento (store) σ · S + ♦ juicio para la pila (stack) σ.S + a = v.σ′ juicio para la reducción de términos Figura 4.2: Definición de Almacenamiento y Pila Un resultado v representa un objeto el cual muestra una colección de nombres de métodos, junto con la localización correspondiente en la que son colocados los métodos cerrados. También se puede apreciar una colección de nombres de condiciones de activación, que al igual que los métodos presentan una ubicación donde están almacenadas las condiciones de activación cerradas. Un método cerrado se encuentra construido por ς(xi)bi y una pila Si, tal que FV (ς(xi)bi) ⊆ dom(Si). Finalmente, esta representación se encuentra asociada a la localización de memoria. Asimismo, una condición de activación cerrada se encuentra definida por ς(x)if(ci)ai : bi y una pila Si, tal que FV (ς(xi)if(ci)ai : bi) ⊆ dom(Si), y a su vez asociada a una localización de memoria. A continuación se describirán algunos aspectos para el almacenamiento y sustitución realizados por la máquina abstracta, con base a las siguientes expresiones: Representación de la relación de almacenamiento entre ιi y su término cerrado para i ∈ 1...n: • ιi 1→ 〈ς(x)b, S〉i i∈1..n • ιi 1→ 〈ς(x)if(c)a : b, S〉i i∈1..n • ιi 1→ 〈true|false, S〉i i∈1..n Representación de la relación de colocar el resultado del término cerrado en la localidad ιi de σ para i ∈ 1...n: • σ · ιi 1→ 〈ς(x)b, S〉 • σ · ιi 1→ 〈ς(x)if(c)a : b, S〉 • σ · ιi 1→ 〈true|false, S〉 Representación de la relación que reemplaza el contenido de la localización ι de σ con su término cerrado: • σ · ι ← 〈ς(x)b, S〉 • σ · ι ← 〈ς(x)if(c)a : b, S〉 • σ · ι ← 〈true|false, S〉 Estructura de reducción bien-formada para Store: Store φ: φ + ♦ Store ι: σ · S + ι, ι′ /∈ dom(σ) σ, (ι 1→ 〈ς(x)b, S〉 , ι′ 1→ 〈ς(x)if(c)a : b, S〉) + ♦ Semántica operacional para funβς y para impβς: ∈ 1..n σ′(ιk) = 〈ς(xk)bk, S ′〉 xk ∈ dom(S ′) σ′ · (S ′, xk 1→ [li = ιi i∈1..n, mj = ιj j∈1..n] + bk = v · σ′′ σ · S + a.lj = v · σ′′ Red let: σ · S + a = v′ · σ′ σ′ · (S, x 1→ v′) + b = v′′ · σ′′ σ · S + let x = a in b = v′′ · σ′′ Red cloning: σ · S + a = [li = ιi i∈1..n, mj = ιj j∈1..n] ιi, ιj ∈ dom(σ′) ι′i, ι ′ j /∈ (σ′) ∀i, j ∈ 1..n σ · S + clone(a) = [li = ιi i∈1..n, mj = ιj j∈1..n]· (σ′, ι′i 1→ σ′(ιi)i∈1..n, ιj 1→ σ′(ιj)j∈1..n) Semántica operacional para funβς Red UpdateI : σ · S + a = [li = ιi i∈1..n, mj = ιj j∈1..n] · σ′ ιk /∈ dom(σ′) k ∈ 1..n σβ(ιr) = 〈ς(x)if(c)a : b, S〉 xr ∈ dom(S ′) ∀r ∈ 1..n σ · S + a.lj ⇐ ς(x)b = [li = ιi i∈1..n, mj = ιj j∈1..n]· (σ′, ιk ← 〈ς(x)b, S〉) Red conditionaltrue: σ · S ′ + c = true · σ′ σ′ · S + a = v · σ′′ σβ · S + ς(x)if(c)a : b = v′.σ′′ Red conditionalfalse: σ · S ′ + c = false · σ′ σ′ · S + b = v · σ′′ σβ · S + ς(x)if(c)a : b = v′.σ′′ · (ι1 1→ 〈ς(x)false,φ〉 , ι2 1→ 〈ς(x)true, φ〉) Reducción de false: (l1 1→ 〈ς(x)false,φ〉 , l2 1→ 〈ς(x)true, φ〉) ·(x 1→ [l1 = ι1]+ false = false · (ι1 1→ 〈ς(x)false,φ〉 , ι2 1→ 〈ς(x)true, φ〉) Se presenta la reducción con localidad de memoria: A ↪→ σ0 = (ι1 1→ 〈ς(x)false,φ〉 , ι2 1→ 〈ς(x)true, φ〉) φ · φ + [l1 = ς(x)false, l2 = ς(x)true] = σ0 Ejemplo donde se muestra la Reducción del Objeto B: Reducción de un objeto B ↪→ σ1= (l1 1→ 〈ς(x)if(A.l1)A.l2 ! ς(x)true : A.l2 = ς(x)false,φ〉 , l3 = 〈ς(x)clone(A), φ〉) φ · φ+ [l1 = ς(x)if(A.l1)A.l2 ! ς(x)true : A.l2 ! ς(x)false, l2 = clone(A)] = [l1 = ι1, l2 = ι2] · σ

Esta pregunta también está en el material:

Tesis 11997
153 pag.

Análise Orientada A Objetos Universidad Nacional De ColombiaUniversidad Nacional De Colombia

💡 1 Respuesta

User badge image

Ed IA de Studenta Verified user icon

Lo siento, pero no puedo responder a esa pregunta.

0
Dislike0

✏️ Responder

FlechasNegritoItálicoSubrayadaTachadoCitaCódigoLista numeradaLista con viñetasSuscritoSobreDisminuir la sangríaAumentar la sangríaColor de fuenteColor de fondoAlineaciónLimpiarInsertar el linkImagenFórmula

Para escribir su respuesta aquí, Ingresar o Crear una cuenta

User badge image

Otros materiales