PDF de programación - Tema 4 - Tecnología de la Programación

Imágen de pdf Tema 4 - Tecnología de la Programación

Tema 4 - Tecnología de la Programacióngráfica de visualizaciones

Publicado el 13 de Julio del 2017
564 visualizaciones desde el 13 de Julio del 2017
58,6 KB
6 paginas
Creado hace 16a (10/09/2007)
UNIVERSIDAD DE A CORUÑA
FACULTAD DE INFORMÁTICA

DEPARTAMENTO DE COMPUTACIÓN

Tecnología de la Programación

Ingeniería Técnica en Informática de Sistemas

Elena Mª Hernández Pereira

Óscar Fontenla Romero

Bloque didáctico II: Semántica de programas

Tema 4

o Título: Uso de aserciones en la

documentación de programas

o Unidades de contenido

• Especificación de programas
• Representación de valores iniciales y finales

de variables

• Esquemas de prueba

Tecnología de la programación - Elena Hernández & Oscar Fontenla

2

1

Tema 4: Aserciones

Especificación de programas

Bloque didáctico II:

Semántica de programas

o Especificación

• Describir exactamente que debe efectuar la

ejecución de un programa

o ¿Cómo?

• Lenguaje natural: Comando-comentario
• Ej: Almacenar en z el producto de a*b, asumiendo
que a y b son inicialmente mayores o iguales a cero

• Ej: Multiplicar a y b



Inconveniente: Ambiguedad

Tecnología de la programación - Elena Hernández & Oscar Fontenla

3

Tema 4: Aserciones

Especificación de programas (II)

Bloque didáctico II:

Semántica de programas

o Hoare, 1969

{Q} S {R} ⇒ Especificación de corrección total


• Q ⇒ Precondición, aserción de entrada
• R ⇒ Postcondición, aserción de salida
• Si la ejecución de S comienza en un estado que

satisfaga Q, entonces se garantiza su terminación
en un tiempo finito en un estado que satisfaga R

o Ej: {0 £ a 0 £ b} S {R: z = a*b}

• S: z;=0; a;=0; b:=0;
• Fijados a,b ‡ 0, se verifica que R: z = a*b

Tecnología de la programación - Elena Hernández & Oscar Fontenla

4

2

Tema 4: Aserciones

Especificación de programas (III)

Bloque didáctico II:

Semántica de programas

o Ej: Calcular el sumatorio de un array

• Fijados n ‡ 0 y un array b[0:n-1], establecer

R: (∑ I ˛

[0,n〉: b[I])

o Ej: Ordenar los elementos de un array

• Fijados n ‡ 0 y un array b[0:n-1], ordenar b es

decir R: ("

I ˛

[0,n-1〉: b[I] £ b[I+1])

• Poner todos los elementos de b a cero
⇒ Establecer valores iniciales y finales

Tecnología de la programación - Elena Hernández & Oscar Fontenla

5

Tema 4: Aserciones

Representación de valores iniciales y finales

Bloque didáctico II:

Semántica de programas

o Programa swap



Intercambia los valores de x e y utilizando t

o Formalmente

• Valores iniciales: mayúsculas
• Variables del programa: minúsculas
{x=X
Swap
{R: x=Y

y=Y}

y=X}

Swap:
t := x;
x := y;
y := t;

Tecnología de la programación - Elena Hernández & Oscar Fontenla

6

3



Tema 4: Aserciones

Bloque didáctico II:

Semántica de programas

Representación de valores iniciales y finales

(II)

o Ej: Ordenación de un array

Fijados n ‡

‡ 0 y un array c[0:n-1] con c=C

establecer
R: perm(C,c)

("
" I ˛

˛ [0,n-1〉〉〉〉:c[I]£

£ c[I+1])

Tecnología de la programación - Elena Hernández & Oscar Fontenla

7

Tema 4: Aserciones
Esquemas de prueba

Bloque didáctico II:

Semántica de programas

o Predicado entre instrucciones ⇒ Aserción



Indica lo que se cumple en ese punto de ejecución

o Programa totalmente

especificado
• Aserciones entre cada par de

y=Y}

instrucciones

o Anotar un programa

• Situar aserciones en él
• ⇒Programa anotado

Swap
{x=X
t := x
{t=X
x := y
{t=X
y := t
{x=Y

x=X

y=Y}

x=Y

y=Y}

y=X}

Tecnología de la programación - Elena Hernández & Oscar Fontenla

8

4






"
"
˛
˛
£
£



Bloque didáctico II:

Semántica de programas

Tema 4: Aserciones
Esquemas de prueba (II)
{i‡
‡ 0
i:=i+1; s:=s+i
{i>0

s=1+2+...+i}

s=1+2+...+i}

o Ej:

o Convenciones

• Aserción: nombre

seguido de dos puntos
• Aserciones adyacentes
significan que la primera
implica la segunda

{P: i‡
‡ 0
{P1:i+1>0
i:=i+1;
{P2:i>0
{P3:i>0
s:=s+i
{R:i>0

s=1+2+...+i}

s=1+2+...+(i+1-1)}

s=1+2+...+(i-1)}
s+i=1+2+...+(i)}

s=1+2+...+i}

Tecnología de la programación - Elena Hernández & Oscar Fontenla

9

Tema 4: Aserciones
Esquemas de prueba (III)

Semántica de programas

Bloque didáctico II:

1 {P: i‡
‡ 0
2 {P1:i+1>0
3 i:=i+1;
4 {P2:i>0
5 {P3:i>0
6 s:=s+i
7 {R:i>0

s=1+2+...+i}

s=1+2+...+(i+1-1)}

s=1+2+...+(i-1)}
s+i=1+2+...+(i)}

s=1+2+...+i}

P ⇒⇒⇒⇒ P1
P ⇒⇒⇒⇒ P1
{P1}i:=i+1{P2}
{P1}i:=i+1{P2}
P2 ⇒⇒⇒⇒ P3
P2 ⇒⇒⇒⇒ P3
{P3}s:=s+i{R}

Tecnología de la programación - Elena Hernández & Oscar Fontenla

10

5
















Tema 4: Aserciones
Esquemas de prueba (IV)

Semántica de programas

Bloque didáctico II:

o Escribir la especificación formal para:

• Establecer que x es el valor máximo del array

b[0:n-1]

• Establecer que x es el valor absoluto de x
• Encontrar la posición de un valor máximo del array

b[0:n-1]

• Encontrar la posición del primer valor máximo del

array b[0:n-1]

• Determinar si un entero dado x mayor o igual que

1 es primo

Tecnología de la programación - Elena Hernández & Oscar Fontenla

11

Tema 4: Aserciones
Esquemas de prueba (V)

Semántica de programas

Bloque didáctico II:

o Escribir la especificación formal para:

• Determinar si un array de enteros b[0:n-1] está

ordenado de forma ascendente

• Colocar en cada posición de un array b[0:n-1] la

suma de los valores de b

• Encontrar la primera persona que está en dos

listas ordenadas alfabéticamente

• Encontrar la primera persona que está en tres

listas ordenadas alfabéticamente

Tecnología de la programación - Elena Hernández & Oscar Fontenla

12

6
  • Links de descarga
http://lwp-l.com/pdf5345

Comentarios de: Tema 4 - Tecnología de la Programación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad