SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
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

Más contenido relacionado

Destacado

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
 

Destacado (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
 

Último

TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 

Último (20)

TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
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
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
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
 
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
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
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
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 

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