SlideShare a Scribd company logo
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

Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfFerias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
JudithRomero51
 

Recently uploaded (20)

32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
 
Orientación Académica y Profesional 4º de ESO- OrientArte
Orientación Académica y Profesional 4º de ESO- OrientArteOrientación Académica y Profesional 4º de ESO- OrientArte
Orientación Académica y Profesional 4º de ESO- OrientArte
 
Presentación Pedagoía medieval para exposición en clases
Presentación Pedagoía medieval para exposición en clasesPresentación Pedagoía medieval para exposición en clases
Presentación Pedagoía medieval para exposición en clases
 
LA ILIADA Y LA ODISEA.LITERATURA UNIVERSAL
LA ILIADA Y LA ODISEA.LITERATURA UNIVERSALLA ILIADA Y LA ODISEA.LITERATURA UNIVERSAL
LA ILIADA Y LA ODISEA.LITERATURA UNIVERSAL
 
ESTEREOTIPOS DE GÉNERO A LAS PERSONAS? (Grupo)
ESTEREOTIPOS DE GÉNERO A LAS PERSONAS? (Grupo)ESTEREOTIPOS DE GÉNERO A LAS PERSONAS? (Grupo)
ESTEREOTIPOS DE GÉNERO A LAS PERSONAS? (Grupo)
 
Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
Proceso de gestión de obras - Aquí tu Remodelación
Proceso de gestión de obras - Aquí tu RemodelaciónProceso de gestión de obras - Aquí tu Remodelación
Proceso de gestión de obras - Aquí tu Remodelación
 
6.Deícticos Dos_Enfermería_EspanolAcademico
6.Deícticos Dos_Enfermería_EspanolAcademico6.Deícticos Dos_Enfermería_EspanolAcademico
6.Deícticos Dos_Enfermería_EspanolAcademico
 
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOSTRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
 
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfFerias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
 
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docxENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
 
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIALA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
 
4.Conectores Dos_Enfermería_Espanolacademico
4.Conectores Dos_Enfermería_Espanolacademico4.Conectores Dos_Enfermería_Espanolacademico
4.Conectores Dos_Enfermería_Espanolacademico
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...
 
Cerebelo Anatomía y fisiología Clase presencial
Cerebelo Anatomía y fisiología Clase presencialCerebelo Anatomía y fisiología Clase presencial
Cerebelo Anatomía y fisiología Clase presencial
 
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
 
Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)
 
Presentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos DigitalesPresentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos Digitales
 
Proyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptxProyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptx
 

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