Result: Semantics-Aware Trace Analysis

Title:
Semantics-Aware Trace Analysis
Source:
Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'09)ACM SIGPLAN notices. 44(6):453-464
Publisher Information:
New York, NY: Association for Computing Machinery, 2009.
Publication Year:
2009
Physical Description:
print, 24 ref
Original Material:
INIST-CNRS
Subject Terms:
Computer science, Informatique, Sciences exactes et technologie, Exact sciences and technology, Sciences appliquees, Applied sciences, Informatique; automatique theorique; systemes, Computer science; control theory; systems, Logiciel, Software, Langages de programmation, Programming languages, Sciences biologiques et medicales, Biological and medical sciences, Sciences biologiques fondamentales et appliquees. Psychologie, Fundamental and applied biological sciences. Psychology, Psychologie. Psychophysiologie, Psychology. Psychophysiology, Cognition. Intelligence, Raisonnement. Résolution de problème, Reasoning. Problem solving, Psychologie. Psychanalyse. Psychiatrie, Psychology. Psychoanalysis. Psychiatry, Abstraction, Abstracción, Analyse programme, Program analysis, Análisis programa, Analyse régression, Regression analysis, Análisis regresión, Analyse sémantique, Semantic analysis, Análisis semántico, Analyse trace, Trace analysis, Análisis huella, Complexité programme, Program complexity, Complejidad programa, Exécution programme, Program execution, Ejecución programa, Fiabilité, Reliability, Fiabilidad, Grammaire, Grammar, Gramática, Grosseur grain, Grain size, Grosor grano, Génération code, Code generation, Generación código, Langage JAVA, JAVA language, Lenguaje JAVA, Logiciel libre, Open source software, Software libre, Multitâche, Multithread, Multitarea, Réusinage, Refactoring, refabricar código, Sémantique, Semantics, Semántica, Vérification programme, Program verification, Verificación programa, Algorithms
Document Type:
Conference Conference Paper
File Description:
text
Language:
English
Author Affiliations:
Computer Science Department, Purdue University, United States
ISSN:
1523-2867
Rights:
Copyright 2015 INIST-CNRS
CC BY 4.0
Sauf mention contraire ci-dessus, le contenu de cette notice bibliographique peut être utilisé dans le cadre d’une licence CC BY 4.0 Inist-CNRS / Unless otherwise stated above, the content of this bibliographic record may be used under a CC BY 4.0 licence by Inist-CNRS / A menos que se haya señalado antes, el contenido de este registro bibliográfico puede ser utilizado al amparo de una licencia CC BY 4.0 Inist-CNRS
Notes:
Computer science; theoretical automation; systems

Psychology. Ethology

FRANCIS
Accession Number:
edscal.22149982
Database:
PASCAL Archive

Further Information

As computer systems continue to become more powerful and complex, so do programs. High-level abstractions introduced to deal with complexity in large programs, while simplifying human reasoning, can often obfuscate salient program properties gleaned from automated source-level analysis through subtle (often non-local) interactions. Consequently, understanding the effects of program changes and whether these changes violate intended protocols become difficult to infer. Refactorings, and feature additions, modifications, or removals can introduce hard-to-catch bugs that often go undetected until many revisions later. To address these issues, this paper presents a novel dynamic program analysis that builds a semantic view of program executions. These views reflect program abstractions and aspects; however, views are not simply projections of execution traces, but are linked to each other to capture semantic interactions among abstractions at different levels of granularity in a scalable manner. We describe our approach in the context of Java and demonstrate its utility to improve regression analysis. We first formalize a subset of Java and a grammar for traces generated at program execution. We then introduce several types of views used to analyze regression bugs along with a novel, scalable technique for semantic differencing of traces from different versions of the same program. Benchmark results on large open-source Java programs demonstrate that semantic-aware trace differencing can identify precise and useful details about the underlying cause for a regression, even in programs that use reflection, multithreading, or dynamic code generation, features that typically confound other analysis techniques.