SlideShare a Scribd company logo
1 of 36
Download to read offline
2.3. Derivaci´n de algoritmos
             o




                                Metodolog´ de la Programaci´n
                                         ıa                o
            Tema 2. Teor´ y pr´ctica de derivaci´n de asignaciones representado
                        ıa    a                 o
                                               A
                                      usando LTEX


                                                   Igor Ruiz-Agundez1

                       DeustoTech Computing, Deusto Institute of Technology, University of Deusto




             1 http://paginaspersonales.deusto.es/igor.ira/
2.3. Derivaci´n de algoritmos
             o




                      Teor´ 2.3.1. Derivaci´n de asignaciones
                          ıa               o
                 Pr´ctica Ejemplo 2. Intercambio de valores
                   a
                Discusi´n Feed-back
                       o
2.3. Derivaci´n de algoritmos
             o




                      Teor´ 2.3.1. Derivaci´n de asignaciones
                          ıa               o
                 Pr´ctica Ejemplo 2. Intercambio de valores
                   a
                Discusi´n Feed-back
                       o
2.3. Derivaci´n de algoritmos
             o




                      Teor´ 2.3.1. Derivaci´n de asignaciones
                          ıa               o
                 Pr´ctica Ejemplo 2. Intercambio de valores
                   a
                Discusi´n Feed-back
                       o
2.3. Derivaci´n de algoritmos
             o



2.3.1. Derivaci´n de asignaciones
               o
Teor´
    ıa




        An´lisis de la postcondici´n
          a                       o
        Los resultados a obtener influyen en el dise˜o mucho m´s que los datos
                                                     n           a
        de los que se dispone.
        Es por eso por lo que el an´lisis de la postcondici´n es un buen m´todo
                                    a                      o              e
        para desarrollar algoritmos.
2.3. Derivaci´n de algoritmos
             o



2.3.1. Derivaci´n de asignaciones
               o
Teor´
    ıa




         Heur´ısticas derivadas del an´lisis
                                      a        Podr´ satisfacerse mediante
                                                   ıas
         de las postcondici´n
                            o                      Puede intentarse
                  Si en la postcondici´n
                                      o            satisfacerlas mediante
                  aparecen igualdades entre        asignaciones simples o
                  variables del programa y         m´ltiples.
                                                     u
                  expresiones.
2.3. Derivaci´n de algoritmos
             o



2.3.1. Derivaci´n de asignaciones
               o
Teor´
    ıa




         Heur´ısticas derivadas del an´lisis
                                      a        Podr´ satisfacerse mediante
                                                   ıas
         de las postcondici´n
                            o                      Hay varias maneras de
                  Si aparecen disyunciones.        satisfacer la postcondici´n.
                                                                            o
                                                   Puede intentarse dise˜ando
                                                                         n
                                                   una alternativa, cada una
                                                   de cuyas ramas obtenga la
                                                   postcondici´n a base de
                                                               o
                                                   satisfacer una de las
                                                   disyunciones.
2.3. Derivaci´n de algoritmos
             o



2.3.1. Derivaci´n de asignaciones
               o
Teor´
    ıa



         Heur´ısticas derivadas del an´lisis
                                      a        Podr´ satisfacerse mediante
                                                   ıas
         de las postcondici´n
                            o                      Puede considerarse cada
                  Si aparecen conjunciones.        una de ellas aisladamente e
                                                   intentar satisfacerlas por
                                                   separado.
                                                   Es posible que al intentar
                                                   satisfacer una de ellas la
                                                   otra se haga imposible de
                                                   satisfacer.
                                                   Se puede crear alternativas
                                                   en las cuales algunas
                                                   conjunciones se satisfacen
                                                   mediante la instrucci´n
                                                                        o
                                                   protegida.
                                                   Las dem´s constan en la
                                                           a
                                                   protecci´n.
                                                           o
2.3. Derivaci´n de algoritmos
             o



2.3.1. Derivaci´n de asignaciones
               o
Teor´
    ıa




         Heur´ısticas derivadas del an´lisis
                                      a        Podr´ satisfacerse mediante
                                                   ıas
         de las postcondici´n
                            o                      El empleo de “prueba y
                  Estas indicaciones no            error”.
                  evitan...
2.3. Derivaci´n de algoritmos
             o



2.3.1. Derivaci´n de asignaciones
               o
Teor´
    ıa




        Requisitos
        Hay que indicar en la especificaci´n qu´ variables pueden cambiar de
                                         o    e
        valor y cu´les no.
                  a


         Estrategia a seguir                   Ejemplo
                  La construcci´n de un
                               o                   {Prec}
                  programa parte                   {Post}
                  necesariamente de un par
                  de asertos que constituyen
                  su especificaci´n, por
                                o
                  ejemplo Prec y Post.
2.3. Derivaci´n de algoritmos
             o



2.3.1. Derivaci´n de asignaciones
               o
Teor´
    ıa




         Estrategia a seguir                    Ejemplo
                  Es com´n en el proceso de
                          u                         {Prec}
                  derivaci´n de los programas
                          o                           ?
                  pensar en una instrucci´n I
                                         o
                                                      I
                  que nos podr´ ayudar a
                                ıa
                  establecer la postcondici´n
                                           o        {Post}
                  y situarla como ultima
                                   ´
                  instrucci´n del programa.
                           o
2.3. Derivaci´n de algoritmos
             o



2.3.1. Derivaci´n de asignaciones
               o
Teor´
    ıa




         Estrategia a seguir                     Ejemplo
                  En este caso habr´ que
                                     ıa              {Prec}
                  continuar el proceso hacia           ?
                  arriba, calculando el aserto
                                                       {B}
                  B que deber´ cumplirse
                               ıa
                  antes de la instrucci´n
                                        o              I
                  dise˜ada para que la
                      n                              {Post}
                  ejecuci´n de I lleve al
                         o
                  cumplimiento de Post.
2.3. Derivaci´n de algoritmos
             o



2.3.1. Derivaci´n de asignaciones
               o
Teor´
    ıa




         Estrategia a seguir                    Ejemplo
                  A partir de este momento el       {Prec}
                  objetivo ser´ derivar un
                               ıa                     ?
                  programa cuyas
                                                      {B}
                  precondici´n y
                             o
                  postcondici´n fueran Prec y
                               o                      I
                  B. El proceso se repite           {Post}
                  hasta que la precondici´n
                                          o
                  calculada para determinada
                  instrucci´n coincida con
                           o
                  Prec, la precondici´n de la
                                     o
                  especificaci´n inicial.
                              o
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Enunciado




        Se pide
        Derivar la siguiente especificaci´n que realiza un intercambio de valores.
                                        o

        Especificaci´n
                    o
            var x, y : nat
                 {Prec : x = X ∧ y = Y }
                 {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        An´lisis de la postcondici´n
          a                       o
        La postcondici´n es una conjunci´n de dos igualdades.
                      o                 o

        Opciones
                 Considerarse cada una de ellas aisladamente e intentar satisfacerlas
                 por separado. Pero es posible que al intentar satisfacer una de ellas
                 la otra se haga imposible de satisfacer.
                 Crear alternativas en las cuales algunas conjunciones se satisfacen
                 mediante la instrucci´n protegida y las dem´s constan en la
                                      o                      a
                 protecci´n.
                         o
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Primera aproximaci´n
                          o
        Podr´
            ıamos pensar en una asignaci´n m´ltiple.
                                        o   u


         Instrucciones
                  {Prec : x = X ∧ y = Y }
                      < x, y >:=< y , x >
                  {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Primera aproximaci´n
                          o
        Podr´
            ıamos pensar en una asignaci´n m´ltiple.
                                        o   u


         Instrucciones
                  {Prec : x = X ∧ y = Y }
                      < x, y >:=< y , x >
                  {Post : x = Y ∧ y = X }

        Reflexi´n
              o
            Sin embargo, la postcondici´n es una conjunci´n de dos igualdades.
                                       o                 o
            Tienen que cumplirse ambas simult´neamente. Adem´s, no puede
                                              a                 a
            verificarse.
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Segunda aproximaci´n
                          o
        Intentamos con una asignaci´n sobre la variable y . No podemos acceder
                                   o
        al valor inicial de X .


         Instrucciones                         Buscamos {A1 }
                  {A1 }                            {A1 } ≡ Post[y ← x]
                      y := x                       ≡x =Y ∧x =X
                  {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Segunda aproximaci´n
                          o
        Intentamos con una asignaci´n sobre la variable y . No podemos acceder
                                   o
        al valor inicial de X .


         Instrucciones                         Buscamos {A1 }
                  {A1 }                            {A1 } ≡ Post[y ← x]
                      y := x                       ≡x =Y ∧x =X
                  {Post : x = Y ∧ y = X }          ≡X =Y
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Segunda aproximaci´n
                          o
        Intentamos con una asignaci´n sobre la variable y . No podemos acceder
                                   o
        al valor inicial de X .


         Instrucciones                         Buscamos {A1 }
                  {A1 }                            {A1 } ≡ Post[y ← x]
                      y := x                       ≡x =Y ∧x =X
                  {Post : x = Y ∧ y = X }          ≡X =Y

        Reflexi´n
              o
            No podemos asegurarlo. No tenemos esa informaci´n.
                                                           o
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Tercera aproximaci´n
                          o
        Intentamos con una asignaci´n sobre la variable x. No podemos acceder
                                   o
        al valor inicial de Y .


         Instrucciones                        Buscamos {A1 }
                  {A1 }                            {A1 } ≡ Post[x ← y ]
                      x := y                       ≡y =Y ∧y =X
                  {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Tercera aproximaci´n
                          o
        Intentamos con una asignaci´n sobre la variable x. No podemos acceder
                                   o
        al valor inicial de Y .


         Instrucciones                        Buscamos {A1 }
                  {A1 }                            {A1 } ≡ Post[x ← y ]
                      x := y                       ≡y =Y ∧y =X
                  {Post : x = Y ∧ y = X }          ≡X =Y
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Tercera aproximaci´n
                          o
        Intentamos con una asignaci´n sobre la variable x. No podemos acceder
                                   o
        al valor inicial de Y .


         Instrucciones                        Buscamos {A1 }
                  {A1 }                            {A1 } ≡ Post[x ← y ]
                    x := y                         ≡y =Y ∧y =X
                  {Post : x = Y ∧ y = X }          ≡X =Y

        Reflexi´n
              o
            Ocurrir´ lo mismo. No podemos asegurarlo. No tenemos esa
                   ıa
            informaci´n.
                      o
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional.


         Instrucciones                       Buscamos {A1 }
              var z : nat                        {A1 } ≡ Post[y ← z]
                  {A1 }                          ≡x =Y ∧z =X
                      y := z
                  {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional.


         Instrucciones                       Buscamos {A1 }
              var z : nat                        {A1 } ≡ Post[y ← z]
                  {A1 }                          ≡x =Y ∧z =X
                      y := z                     ¿Podemos demostrar esto?
                  {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional.


         Instrucciones                           Buscamos {A1 }
              var z : nat                             {A1 } ≡ Post[y ← z]
                  {A1 }                               ≡x =Y ∧z =X
                      y := z                          ¿Podemos demostrar esto?
                  {Post : x = Y ∧ y = X }

        Reflexi´n
              o
                 No podemos demostrarlo. Seguimos operando sobre {A1 }.
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional y continuamos operando sobre {A1 }.


         Instrucciones                         Buscamos {A2 }
              var z : nat                           {A2 } ≡ A1 [z ← x]
                  {A2 }                             ≡x =Y ∧x =X
                      z := x;
                  {A1 : x = Y ∧ z = X }
                      y := z
                  {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional y continuamos operando sobre {A1 }.


         Instrucciones                         Buscamos {A2 }
              var z : nat                           {A2 } ≡ A1 [z ← x]
                  {A2 }                             ≡x =Y ∧x =X
                      z := x;                       ≡X =Y
                  {A1 : x = Y ∧ z = X }
                      y := z
                  {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o


        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional y continuamos operando sobre {A1 }.


         Instrucciones                         Buscamos {A2 }
              var z : nat                           {A2 } ≡ A1 [z ← x]
                  {A2 }                             ≡x =Y ∧x =X
                      z := x;                       ≡X =Y
                  {A1 : x = Y ∧ z = X }
                      y := z
                  {Post : x = Y ∧ y = X }

        Reflexi´n
              o
            No podemos asegurarlo. No tenemos esa informaci´n.
                                                           o
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional y continuamos operando sobre {A1 }.
        Segundo intento.


         Instrucciones                         Buscamos {A2 }
              var z : nat                           {A2 } ≡ A1 [x ← y ]
                  {A2 }                             ≡y =Y ∧z =X
                      x := y ;
                  {A1 : x = Y ∧ z = X }
                      y := z
                  {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o




        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional y continuamos operando sobre {A1 }.
        Segundo intento.


         Instrucciones                         Buscamos {A2 }
              var z : nat                           {A2 } ≡ A1 [x ← y ]
                  {A2 }                             ≡y =Y ∧z =X
                      x := y ;                          // Por la Prec
                  {A1 : x = Y ∧ z = X }             ≡z =X
                      y := z                        ¿Podemos demostrar esto?
                  {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o


        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional y continuamos operando sobre {A1 }.
        Segundo intento.


         Instrucciones                           Buscamos {A2 }
              var z : nat                             {A2 } ≡ A1 [x ← y ]
                  {A2 }                               ≡y =Y ∧z =X
                      x := y ;                            // Por la Prec
                  {A1 : x = Y ∧ z = X }               ≡z =X
                      y := z                          ¿Podemos demostrar esto?
                  {Post : x = Y ∧ y = X }

        Reflexi´n
              o
                 No podemos demostrarlo. Seguimos operando sobre {A2 }.
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o



        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional y continuamos operando sobre {A2 }.


         Instrucciones                         Verificamos z := x
                  {Prec : x = X ∧ y = Y }           {Prec} ⇒ A2 [z ← x]
                      var z : nat                   ≡x =X
                      z := x
                  {A2 : z = X }
                      x := y ;
                  {A1 : x = Y ∧ z = X }
                      y := z
                  {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o



        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional y continuamos operando sobre {A2 }.


         Instrucciones                         Verificamos z := x
                  {Prec : x = X ∧ y = Y }           {Prec} ⇒ A2 [z ← x]
                      var z : nat                   ≡x =X
                      z := x                            // Por la Prec
                  {A2 : z = X }                     ≡ True
                      x := y ;
                  {A1 : x = Y ∧ z = X }
                      y := z
                  {Post : x = Y ∧ y = X }
2.3. Derivaci´n de algoritmos
             o



Ejemplo 2. Intercambio de valores
Soluci´n
      o

        Cuarta aproximaci´n
                         o
        Utilizamos una variable adicional y continuamos operando sobre {A2 }.


         Instrucciones                         Verificamos z := x
                  {Prec : x = X ∧ y = Y }           {Prec} ⇒ A2 [z ← x]
                      var z : nat                   ≡x =X
                      z := x                            // Por la Prec
                  {A2 : z = X }                     ≡ True
                      x := y ;
                  {A1 : x = Y ∧ z = X }
                      y := z
                  {Post : x = Y ∧ y = X }

        Reflexi´n
              o
            Hemos terminado la derivaci´n.
                                       o
2.3. Derivaci´n de algoritmos
             o



Feed-back
Discusi´n
       o




                                This slide is intentionally left blank

More Related Content

Viewers also liked

Asignación de las partes de la aplicación
Asignación de las partes de la aplicaciónAsignación de las partes de la aplicación
Asignación de las partes de la aplicación
alicia
 
Administracion2
Administracion2Administracion2
Administracion2
jessdiana
 
AsignacióN Trabajo Escrito
AsignacióN Trabajo EscritoAsignacióN Trabajo Escrito
AsignacióN Trabajo Escrito
guest0ce808
 
AsignacióN De Trabajos
AsignacióN De TrabajosAsignacióN De Trabajos
AsignacióN De Trabajos
mediaciones
 
Edmodo - cómo realizar asignaciones de tareas - docente
Edmodo - cómo realizar asignaciones de tareas - docenteEdmodo - cómo realizar asignaciones de tareas - docente
Edmodo - cómo realizar asignaciones de tareas - docente
OEI Capacitación
 
Plan de trabajo 2014
Plan de trabajo 2014Plan de trabajo 2014
Plan de trabajo 2014
CUSH
 
Ud 3 planificación de rrhh
Ud 3 planificación de rrhhUd 3 planificación de rrhh
Ud 3 planificación de rrhh
jcppformacion
 

Viewers also liked (20)

Conferencia precongreso.pptx marixenia
Conferencia precongreso.pptx marixeniaConferencia precongreso.pptx marixenia
Conferencia precongreso.pptx marixenia
 
Asignación de las partes de la aplicación
Asignación de las partes de la aplicaciónAsignación de las partes de la aplicación
Asignación de las partes de la aplicación
 
Plan mensual de utilidades - Me gusta
Plan mensual de utilidades - Me gustaPlan mensual de utilidades - Me gusta
Plan mensual de utilidades - Me gusta
 
Administracion2
Administracion2Administracion2
Administracion2
 
AsignacióN Trabajo Escrito
AsignacióN Trabajo EscritoAsignacióN Trabajo Escrito
AsignacióN Trabajo Escrito
 
AsignacióN De Trabajos
AsignacióN De TrabajosAsignacióN De Trabajos
AsignacióN De Trabajos
 
Edmodo - cómo realizar asignaciones de tareas - docente
Edmodo - cómo realizar asignaciones de tareas - docenteEdmodo - cómo realizar asignaciones de tareas - docente
Edmodo - cómo realizar asignaciones de tareas - docente
 
POA I.E. "LOS COMUNEROS".xlsx
POA I.E. "LOS COMUNEROS".xlsxPOA I.E. "LOS COMUNEROS".xlsx
POA I.E. "LOS COMUNEROS".xlsx
 
Herramientas de Monitorizacion y Administracion Web
Herramientas de Monitorizacion y Administracion WebHerramientas de Monitorizacion y Administracion Web
Herramientas de Monitorizacion y Administracion Web
 
El plan operativo y balanced
El plan operativo y balancedEl plan operativo y balanced
El plan operativo y balanced
 
Clase 2 concepto administración y planificación
Clase 2 concepto administración y planificaciónClase 2 concepto administración y planificación
Clase 2 concepto administración y planificación
 
Plan de trabajo 2014
Plan de trabajo 2014Plan de trabajo 2014
Plan de trabajo 2014
 
Ud 3 planificación de rrhh
Ud 3 planificación de rrhhUd 3 planificación de rrhh
Ud 3 planificación de rrhh
 
ENFERMERIA- PLANIFICACION
ENFERMERIA- PLANIFICACIONENFERMERIA- PLANIFICACION
ENFERMERIA- PLANIFICACION
 
Plan mensual clases grajeda
Plan  mensual clases grajedaPlan  mensual clases grajeda
Plan mensual clases grajeda
 
Diplomado Gerencia de los Servicios de Salud. Tema: Planificación Estrategica
Diplomado Gerencia de los Servicios de Salud. Tema: Planificación EstrategicaDiplomado Gerencia de los Servicios de Salud. Tema: Planificación Estrategica
Diplomado Gerencia de los Servicios de Salud. Tema: Planificación Estrategica
 
Fases De La Planificacion De Los Recursos Y
Fases De La Planificacion De Los Recursos YFases De La Planificacion De Los Recursos Y
Fases De La Planificacion De Los Recursos Y
 
Plan mensual junio (2)
Plan mensual junio (2)Plan mensual junio (2)
Plan mensual junio (2)
 
Normas harvard bibliografía
Normas harvard bibliografíaNormas harvard bibliografía
Normas harvard bibliografía
 
Planeación con Regletas de Cuisenaire
Planeación con Regletas de CuisenairePlaneación con Regletas de Cuisenaire
Planeación con Regletas de Cuisenaire
 

Recently uploaded

RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 

Recently uploaded (20)

1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 

Tema 2. teoría y práctica de derivación de asignaciones representado

  • 1. 2.3. Derivaci´n de algoritmos o Metodolog´ de la Programaci´n ıa o Tema 2. Teor´ y pr´ctica de derivaci´n de asignaciones representado ıa a o A usando LTEX Igor Ruiz-Agundez1 DeustoTech Computing, Deusto Institute of Technology, University of Deusto 1 http://paginaspersonales.deusto.es/igor.ira/
  • 2. 2.3. Derivaci´n de algoritmos o Teor´ 2.3.1. Derivaci´n de asignaciones ıa o Pr´ctica Ejemplo 2. Intercambio de valores a Discusi´n Feed-back o
  • 3. 2.3. Derivaci´n de algoritmos o Teor´ 2.3.1. Derivaci´n de asignaciones ıa o Pr´ctica Ejemplo 2. Intercambio de valores a Discusi´n Feed-back o
  • 4. 2.3. Derivaci´n de algoritmos o Teor´ 2.3.1. Derivaci´n de asignaciones ıa o Pr´ctica Ejemplo 2. Intercambio de valores a Discusi´n Feed-back o
  • 5. 2.3. Derivaci´n de algoritmos o 2.3.1. Derivaci´n de asignaciones o Teor´ ıa An´lisis de la postcondici´n a o Los resultados a obtener influyen en el dise˜o mucho m´s que los datos n a de los que se dispone. Es por eso por lo que el an´lisis de la postcondici´n es un buen m´todo a o e para desarrollar algoritmos.
  • 6. 2.3. Derivaci´n de algoritmos o 2.3.1. Derivaci´n de asignaciones o Teor´ ıa Heur´ısticas derivadas del an´lisis a Podr´ satisfacerse mediante ıas de las postcondici´n o Puede intentarse Si en la postcondici´n o satisfacerlas mediante aparecen igualdades entre asignaciones simples o variables del programa y m´ltiples. u expresiones.
  • 7. 2.3. Derivaci´n de algoritmos o 2.3.1. Derivaci´n de asignaciones o Teor´ ıa Heur´ısticas derivadas del an´lisis a Podr´ satisfacerse mediante ıas de las postcondici´n o Hay varias maneras de Si aparecen disyunciones. satisfacer la postcondici´n. o Puede intentarse dise˜ando n una alternativa, cada una de cuyas ramas obtenga la postcondici´n a base de o satisfacer una de las disyunciones.
  • 8. 2.3. Derivaci´n de algoritmos o 2.3.1. Derivaci´n de asignaciones o Teor´ ıa Heur´ısticas derivadas del an´lisis a Podr´ satisfacerse mediante ıas de las postcondici´n o Puede considerarse cada Si aparecen conjunciones. una de ellas aisladamente e intentar satisfacerlas por separado. Es posible que al intentar satisfacer una de ellas la otra se haga imposible de satisfacer. Se puede crear alternativas en las cuales algunas conjunciones se satisfacen mediante la instrucci´n o protegida. Las dem´s constan en la a protecci´n. o
  • 9. 2.3. Derivaci´n de algoritmos o 2.3.1. Derivaci´n de asignaciones o Teor´ ıa Heur´ısticas derivadas del an´lisis a Podr´ satisfacerse mediante ıas de las postcondici´n o El empleo de “prueba y Estas indicaciones no error”. evitan...
  • 10. 2.3. Derivaci´n de algoritmos o 2.3.1. Derivaci´n de asignaciones o Teor´ ıa Requisitos Hay que indicar en la especificaci´n qu´ variables pueden cambiar de o e valor y cu´les no. a Estrategia a seguir Ejemplo La construcci´n de un o {Prec} programa parte {Post} necesariamente de un par de asertos que constituyen su especificaci´n, por o ejemplo Prec y Post.
  • 11. 2.3. Derivaci´n de algoritmos o 2.3.1. Derivaci´n de asignaciones o Teor´ ıa Estrategia a seguir Ejemplo Es com´n en el proceso de u {Prec} derivaci´n de los programas o ? pensar en una instrucci´n I o I que nos podr´ ayudar a ıa establecer la postcondici´n o {Post} y situarla como ultima ´ instrucci´n del programa. o
  • 12. 2.3. Derivaci´n de algoritmos o 2.3.1. Derivaci´n de asignaciones o Teor´ ıa Estrategia a seguir Ejemplo En este caso habr´ que ıa {Prec} continuar el proceso hacia ? arriba, calculando el aserto {B} B que deber´ cumplirse ıa antes de la instrucci´n o I dise˜ada para que la n {Post} ejecuci´n de I lleve al o cumplimiento de Post.
  • 13. 2.3. Derivaci´n de algoritmos o 2.3.1. Derivaci´n de asignaciones o Teor´ ıa Estrategia a seguir Ejemplo A partir de este momento el {Prec} objetivo ser´ derivar un ıa ? programa cuyas {B} precondici´n y o postcondici´n fueran Prec y o I B. El proceso se repite {Post} hasta que la precondici´n o calculada para determinada instrucci´n coincida con o Prec, la precondici´n de la o especificaci´n inicial. o
  • 14. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Enunciado Se pide Derivar la siguiente especificaci´n que realiza un intercambio de valores. o Especificaci´n o var x, y : nat {Prec : x = X ∧ y = Y } {Post : x = Y ∧ y = X }
  • 15. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o An´lisis de la postcondici´n a o La postcondici´n es una conjunci´n de dos igualdades. o o Opciones Considerarse cada una de ellas aisladamente e intentar satisfacerlas por separado. Pero es posible que al intentar satisfacer una de ellas la otra se haga imposible de satisfacer. Crear alternativas en las cuales algunas conjunciones se satisfacen mediante la instrucci´n protegida y las dem´s constan en la o a protecci´n. o
  • 16. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Primera aproximaci´n o Podr´ ıamos pensar en una asignaci´n m´ltiple. o u Instrucciones {Prec : x = X ∧ y = Y } < x, y >:=< y , x > {Post : x = Y ∧ y = X }
  • 17. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Primera aproximaci´n o Podr´ ıamos pensar en una asignaci´n m´ltiple. o u Instrucciones {Prec : x = X ∧ y = Y } < x, y >:=< y , x > {Post : x = Y ∧ y = X } Reflexi´n o Sin embargo, la postcondici´n es una conjunci´n de dos igualdades. o o Tienen que cumplirse ambas simult´neamente. Adem´s, no puede a a verificarse.
  • 18. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Segunda aproximaci´n o Intentamos con una asignaci´n sobre la variable y . No podemos acceder o al valor inicial de X . Instrucciones Buscamos {A1 } {A1 } {A1 } ≡ Post[y ← x] y := x ≡x =Y ∧x =X {Post : x = Y ∧ y = X }
  • 19. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Segunda aproximaci´n o Intentamos con una asignaci´n sobre la variable y . No podemos acceder o al valor inicial de X . Instrucciones Buscamos {A1 } {A1 } {A1 } ≡ Post[y ← x] y := x ≡x =Y ∧x =X {Post : x = Y ∧ y = X } ≡X =Y
  • 20. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Segunda aproximaci´n o Intentamos con una asignaci´n sobre la variable y . No podemos acceder o al valor inicial de X . Instrucciones Buscamos {A1 } {A1 } {A1 } ≡ Post[y ← x] y := x ≡x =Y ∧x =X {Post : x = Y ∧ y = X } ≡X =Y Reflexi´n o No podemos asegurarlo. No tenemos esa informaci´n. o
  • 21. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Tercera aproximaci´n o Intentamos con una asignaci´n sobre la variable x. No podemos acceder o al valor inicial de Y . Instrucciones Buscamos {A1 } {A1 } {A1 } ≡ Post[x ← y ] x := y ≡y =Y ∧y =X {Post : x = Y ∧ y = X }
  • 22. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Tercera aproximaci´n o Intentamos con una asignaci´n sobre la variable x. No podemos acceder o al valor inicial de Y . Instrucciones Buscamos {A1 } {A1 } {A1 } ≡ Post[x ← y ] x := y ≡y =Y ∧y =X {Post : x = Y ∧ y = X } ≡X =Y
  • 23. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Tercera aproximaci´n o Intentamos con una asignaci´n sobre la variable x. No podemos acceder o al valor inicial de Y . Instrucciones Buscamos {A1 } {A1 } {A1 } ≡ Post[x ← y ] x := y ≡y =Y ∧y =X {Post : x = Y ∧ y = X } ≡X =Y Reflexi´n o Ocurrir´ lo mismo. No podemos asegurarlo. No tenemos esa ıa informaci´n. o
  • 24. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional. Instrucciones Buscamos {A1 } var z : nat {A1 } ≡ Post[y ← z] {A1 } ≡x =Y ∧z =X y := z {Post : x = Y ∧ y = X }
  • 25. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional. Instrucciones Buscamos {A1 } var z : nat {A1 } ≡ Post[y ← z] {A1 } ≡x =Y ∧z =X y := z ¿Podemos demostrar esto? {Post : x = Y ∧ y = X }
  • 26. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional. Instrucciones Buscamos {A1 } var z : nat {A1 } ≡ Post[y ← z] {A1 } ≡x =Y ∧z =X y := z ¿Podemos demostrar esto? {Post : x = Y ∧ y = X } Reflexi´n o No podemos demostrarlo. Seguimos operando sobre {A1 }.
  • 27. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional y continuamos operando sobre {A1 }. Instrucciones Buscamos {A2 } var z : nat {A2 } ≡ A1 [z ← x] {A2 } ≡x =Y ∧x =X z := x; {A1 : x = Y ∧ z = X } y := z {Post : x = Y ∧ y = X }
  • 28. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional y continuamos operando sobre {A1 }. Instrucciones Buscamos {A2 } var z : nat {A2 } ≡ A1 [z ← x] {A2 } ≡x =Y ∧x =X z := x; ≡X =Y {A1 : x = Y ∧ z = X } y := z {Post : x = Y ∧ y = X }
  • 29. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional y continuamos operando sobre {A1 }. Instrucciones Buscamos {A2 } var z : nat {A2 } ≡ A1 [z ← x] {A2 } ≡x =Y ∧x =X z := x; ≡X =Y {A1 : x = Y ∧ z = X } y := z {Post : x = Y ∧ y = X } Reflexi´n o No podemos asegurarlo. No tenemos esa informaci´n. o
  • 30. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional y continuamos operando sobre {A1 }. Segundo intento. Instrucciones Buscamos {A2 } var z : nat {A2 } ≡ A1 [x ← y ] {A2 } ≡y =Y ∧z =X x := y ; {A1 : x = Y ∧ z = X } y := z {Post : x = Y ∧ y = X }
  • 31. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional y continuamos operando sobre {A1 }. Segundo intento. Instrucciones Buscamos {A2 } var z : nat {A2 } ≡ A1 [x ← y ] {A2 } ≡y =Y ∧z =X x := y ; // Por la Prec {A1 : x = Y ∧ z = X } ≡z =X y := z ¿Podemos demostrar esto? {Post : x = Y ∧ y = X }
  • 32. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional y continuamos operando sobre {A1 }. Segundo intento. Instrucciones Buscamos {A2 } var z : nat {A2 } ≡ A1 [x ← y ] {A2 } ≡y =Y ∧z =X x := y ; // Por la Prec {A1 : x = Y ∧ z = X } ≡z =X y := z ¿Podemos demostrar esto? {Post : x = Y ∧ y = X } Reflexi´n o No podemos demostrarlo. Seguimos operando sobre {A2 }.
  • 33. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional y continuamos operando sobre {A2 }. Instrucciones Verificamos z := x {Prec : x = X ∧ y = Y } {Prec} ⇒ A2 [z ← x] var z : nat ≡x =X z := x {A2 : z = X } x := y ; {A1 : x = Y ∧ z = X } y := z {Post : x = Y ∧ y = X }
  • 34. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional y continuamos operando sobre {A2 }. Instrucciones Verificamos z := x {Prec : x = X ∧ y = Y } {Prec} ⇒ A2 [z ← x] var z : nat ≡x =X z := x // Por la Prec {A2 : z = X } ≡ True x := y ; {A1 : x = Y ∧ z = X } y := z {Post : x = Y ∧ y = X }
  • 35. 2.3. Derivaci´n de algoritmos o Ejemplo 2. Intercambio de valores Soluci´n o Cuarta aproximaci´n o Utilizamos una variable adicional y continuamos operando sobre {A2 }. Instrucciones Verificamos z := x {Prec : x = X ∧ y = Y } {Prec} ⇒ A2 [z ← x] var z : nat ≡x =X z := x // Por la Prec {A2 : z = X } ≡ True x := y ; {A1 : x = Y ∧ z = X } y := z {Post : x = Y ∧ y = X } Reflexi´n o Hemos terminado la derivaci´n. o
  • 36. 2.3. Derivaci´n de algoritmos o Feed-back Discusi´n o This slide is intentionally left blank