Logo Studenta

Resumo de Informática Básica (16)

¡Estudia con miles de materiales!

Vista previa del material en texto

corte  de  programa
De  forma  recursiva,  para  cada  enunciado  y  que  puede  afectar  el  valor  de  v  en  el  
enunciado  x,  calculamos  los  sectores  para  todas  las  variables  z  en  y  que  afectan  el  
valor  de  v.  La  unión  de  todos  estos  sectores  es  el  sector  estático  para  (x,  v).
En  programación  de  computadoras,  la  división  de  programas  es  el  cálculo  del  conjunto  
de  instrucciones  del  programa,  la  porción  del  programa,  que  puede  afectar  los  valores  
en  algún  punto  de  interés,  conocido  como  criterio  de  división.
Por  lo  tanto,  el  segmento  (write  (sum),  sum)  es  la  unión  de  tres  segmentos  y  la  
instrucción  "int  sum  =  0"  que  no  tiene  dependencias:
El  sector  se  define  para  un  criterio  de  corte  C  =  (x,  v)  donde  x  es  una  declaración  en  
el  programa  P  y  v  es  variable  en  x.  Un  segmento  estático  incluye  todas  las  
instrucciones  que  pueden  afectar  el  valor  de  la  variable  v  en  la  instrucción  x  para  
cualquier  entrada  posible.  Los  sectores  estáticos  se  calculan  retrocediendo  las  
dependencias  entre  instrucciones.  Más  específicamente,  para  calcular  el  segmento  
estático  para  (x,  v),  primero  encontramos  todas  las  instrucciones  que  pueden  afectar  
directamente  el  valor  de  v  antes  de  encontrar  la  instrucción  x.
Según  la  definición  original  de  Weiser,  de  manera  informal,  un  segmento  de  programa  
estático  S  consta  de  todas  las  instrucciones  del  programa  P  que  pueden  afectar  el  
valor  de  la  variable  v  en  una  instrucción  x.
Por  ejemplo,  considere  el  programa  C  a  continuación.  Calculemos  la  porción  para  
(escribir  (suma),  suma).  El  valor  de  la  suma  se  ve  directamente  afectado  por  las  
declaraciones  "suma  =  suma  +  i  +  w"  si  N  >  1  y  "suma  total  =  0"  si  N  <=  1.
Las  técnicas  de  corte  han  experimentado  un  rápido  desarrollo  desde  la  definición  
original  de  Mark  Weiser.  Al  principio,  el  corte  era  simplemente  estático,  es  decir,  se  
aplicaba  al  código  fuente  sin  ninguna  información  más  que  el  código  fuente.  Bogdan  
Korel  y  Janusz  Laski  introdujeron  el  corte  dinámico,  que  funciona  en  la  ejecución  de  
un  programa  específico  (para  un  seguimiento  de  ejecución  determinado).
Ejemplo
La  división  de  programas  se  puede  utilizar  en  la  depuración  para  localizar  más  
fácilmente  el  origen  de  los  errores.  Otras  aplicaciones  del  slicing  incluyen  
mantenimiento  de  software,  optimización,  análisis  de  programas  y  control  del  flujo  de  
información.
Machine Translated by Google
rebanada  (suma  =  suma  +  i  +  w,  suma)
{int  suma  =  0}.
,
,
rebanada  (suma  =  suma  +  i  +  w,  i)
Es
,
Es  bastante  fácil  ver  que  el  segmento  (suma  =  suma  +  i  +  w,  suma)  consta  de  "suma  =  
suma  +  i  +  w"  e  "int  suma  =  0"  porque  esas  son  las  dos  únicas  declaraciones  anteriores  
que  pueden  afectar  el  valor  de  suma  en  "suma  =  suma  +  i  +  w".  De  manera  similar,  el  
segmento  (suma  =  suma  +  i  +  w,  i)  solo  contiene  "for  (i  =  1;  i  <  N;  ++  i)  {"  y  el  segmento  
(suma  =  suma  +  i  +  w,  w)  contiene  solo  la  declaración  "int  w  =  7".
rebanada  (suma  =  suma  +  i  +  w,  w)
Machine Translated by Google

Continuar navegando

Materiales relacionados

507 pag.
Manual de Matemática Financeira

User badge image

RASHELL CAMILA RAMIREZ VILLAMAR

230 pag.
MATLAB_PROGRAMACION

UNIP

User badge image

Maria Alejandra Tamayo Medina

43 pag.