Program Slicing: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
CheckwBOT (discussione | contributi)
m v2.05 - Fixed using WP:WPCleaner (Entità per le lineette)
FrescoBot (discussione | contributi)
m Bot: spazi attorno alle parentesi e modifiche minori
Riga 2:
Nella [[Programmazione (informatica)|programmazione informatica]], '''il program slicing''' è il calcolo dell'insieme di istruzioni del programma, chiamato '''program slice''', che può influenzare i valori in un punto di interesse, denominato '''criterio di slicing''' . Lo slicing del programma può essere utilizzato nel [[Debugging|debug]] per individuare più facilmente la fonte degli errori. Altre applicazioni dello slicing includono [[Manutenzione (sviluppo software)|la manutenzione del software]], [[Ottimizzazione (informatica)|l'ottimizzazione]], l'analisi dei programmi e il controllo del flusso di informazioni .
 
Le tecniche di slicing hanno visto un rapido sviluppo sin dalla definizione originale di [[Mark Weiser]] . Inizialmente lo slicing era solo statico, cioè applicato al codice sorgente senza altre informazioni oltre al codice sorgente. [[Bogdan Korel]] e [[Janusz Laski]] hanno introdotto ''lo slicing dinamico'', che funziona su una specifica esecuzione del programma (per una data traccia di esecuzione). <ref>{{Cita pubblicazione|volume=29|doi=10.1016/0020-0190(88)90054-3}}</ref> Esistono altre forme di slicing, ad esempio il path slicing. <ref>{{Cita libro|nome=Ranjit|cognome=Jhala|nome2=Rupak|cognome2=Majumdar|titolo=Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation|data=2005|editore=ACM|pp=38–47|ISBN=9781595930569|DOI=10.1145/1065010.1065016|serie=PLDI '05}}</ref>
 
== Slicing statico ==
Riga 14:
* slice (sum = sum + i + w, sum)
* slice (sum = sum + i +w, i)
* slice (sum = sum +i +w, w) , and
* {int sum=0}
 
Riga 43:
 
== Approccio allo slicing statico rapido in avanti ==
Un approccio di slicing molto veloce e scalabile, ma leggermente meno accurato, è estremamente utile per una serie di motivi. Gli sviluppatori disporranno di costi molto bassi e di mezzi pratici per stimare l'impatto di un cambiamento in pochi minuti invece che in giorni. Questo è molto importante per pianificare l'implementazione di nuove funzionalità e comprendere come un cambiamento è correlato ad altre parti del sistema. Fornirà inoltre un test poco costoso per determinare se è giustificata un'analisi completa e più costosa del sistema. Un approccio di slicing rapido aprirà nuove strade di ricerca nelle metriche e nell’estrazione di storie basate sullo slicing. Cioè, ora lo slicing può essere condotto su sistemi molto grandi e su intere cronologie di versioni in tempi molto pratici. Ciò apre la porta a una serie di esperimenti e indagini empiriche che in precedenza erano troppo costosi da intraprendere. <ref>{{Cita pubblicazione|volume=26|lingua=en|doi=10.1002/smr.1651|ISSN=2047-7473}}</ref>
 
== Slicing dinamico ==