-
Wilfried Jouve,
Nicolas Palix,
Charles Consel,
and Patrice Kadionik.
Génération de canevas de programmation dédiés pour les applications de téléphonie avancées.
In Journées nationales du groupe de recherche génie de la programmation et du logiciel,
Toulouse, France,
pages 54-55,
January 2009.
@INPROCEEDINGS{jouve-al:gdr-gpl09,
ADDRESS = {Toulouse, France},
AUTHOR = {Wilfried Jouve and Nicolas Palix and Charles Consel and Patrice Kadionik},
BOOKTITLE = {Journées nationales du groupe de recherche génie de la programmation et du logiciel},
OPTEDITOR = {},
MONTH = {January},
OPTNOTE = {},
OPTNUMBER = {},
OPTORGANIZATION = {},
PAGES = {54--55},
OPTPUBLISHER = {},
OPTSERIES = {},
TITLE = {Génération de canevas de programmation dédiés pour les applications de téléphonie avancées},
OPTVOLUME = {},
YEAR = {2009},
OPTABSTRACT = {},
OPTDOI = {},
OPTISBN = {},
OPTISSN = {},
OPTKEYWORDS = {},
OPTURL = {},
OPTURL-PUBLISHER = {}
}
-
Julia L. Lawall,
Julien Brunel,
Nicolas Palix,
René Rydhof Hansen,
Henrik Stuart,
and Gilles Muller.
WYSIWIB: A Declarative Approach to Finding API Protocols and Bugs in Linux Code.
In Proceeding of the International Conference on Dependable Systems and Networks,
Estoril (Lisbon), Portugal,
pages 43-52,
June 2009.
Keyword(s): DSL,
Coccinelle.
Abstract:
Eliminating OS bugs is essential to ensuring the reliability of infrastructures ranging from embedded systems to servers. Several tools based on static analysis have been proposed for finding bugs in OS code. They have, however, emphasized scalability over usability, making it difficult to focus the tools on specific kinds of bugs and to relate the results to patterns in the source code. We propose a declarative approach to bug finding in Linux OS code using a control-flow based program search engine. Our approach is WYSIWIB (What You See Is Where It Bugs), since the programmer expresses specifications for bug finding using a syntax close to that of ordinary C code. The key advantage of our approach is that search specifications can be easily tailored, to eliminate false positives or catch more bugs. We present three case studies that have allowed us to find hundreds of potential bugs. |
@INPROCEEDINGS{lawall09:_wysiw,
ADDRESS = {Estoril (Lisbon), Portugal},
AUTHOR = {Julia L. Lawall and Julien Brunel and Nicolas Palix and René Rydhof Hansen and Henrik Stuart and Gilles Muller},
BOOKTITLE = {Proceeding of the International Conference on Dependable Systems and Networks},
OPTEDITOR = {},
MONTH = {June},
OPTNOTE = {},
OPTNUMBER = {},
OPTORGANIZATION = {},
PAGES = {43--52},
OPTPUBLISHER = {},
OPTSERIES = {},
TITLE = {WYSIWIB: A Declarative Approach to Finding API Protocols and Bugs in Linux Code},
OPTVOLUME = {},
YEAR = {2009},
ABSTRACT = { Eliminating OS bugs is essential to ensuring the reliability of infrastructures ranging from embedded systems to servers. Several tools based on static analysis have been proposed for finding bugs in OS code. They have, however, emphasized scalability over usability, making it difficult to focus the tools on specific kinds of bugs and to relate the results to patterns in the source code. We propose a declarative approach to bug finding in Linux OS code using a control-flow based program search engine. Our approach is WYSIWIB (What You See Is Where It Bugs), since the programmer expresses specifications for bug finding using a syntax close to that of ordinary C code. The key advantage of our approach is that search specifications can be easily tailored, to eliminate false positives or catch more bugs. We present three case studies that have allowed us to find hundreds of potential bugs. },
DOI = {10.1109/DSN.2009.5270354},
OPTISBN = {},
OPTISSN = {},
KEYWORDS = {DSL, Coccinelle},
OPTURL = {},
OPTURL-PUBLISHER = {},
PDF = {http://www.diku.dk/hjemmesider/ansatte/julia/dsn09.pdf}
}
-
Julia L. Lawall,
Gilles Muller,
and Nicolas Palix.
Enforcing the Use of API Functions in Linux Code.
In ACP4IS '09: Proceedings of the 8th workshop on Aspects, components, and patterns for infrastructure software,
New York, NY, USA,
pages 7-11,
March 2009.
ACM.
ISBN: 978-1-60558-450-8.
Keyword(s): DSL,
Coccinelle.
Abstract:
In the Linux kernel source tree, header files typically define many small functions that have a simple behavior but are critical to ensure readability, correctness, and maintainability. We have observed, however, that some Linux code does not use these functions systematically. In this paper, we propose an approach combining rule-based program matching and transformation with generative programming to generate rules for finding and fixing code fragments that should use the functions defined in header files. We illustrate our approach using an in-depth study based on four typical functions defined in the header file include/linux/usb.h. |
@INPROCEEDINGS{Lawall:acp4is09,
ADDRESS = {New York, NY, USA},
AUTHOR = {Julia L. Lawall and Gilles Muller and Nicolas Palix},
BOOKTITLE = {ACP4IS '09: Proceedings of the 8th workshop on Aspects, components, and patterns for infrastructure software},
OPTEDITOR = {},
MONTH = {March},
OPTNOTE = {},
OPTNUMBER = {},
OPTORGANIZATION = {},
PAGES = {7--11},
PUBLISHER = {ACM},
OPTSERIES = {},
TITLE = {Enforcing the Use of API Functions in Linux Code},
OPTVOLUME = {},
YEAR = {2009},
ABSTRACT = { In the Linux kernel source tree, header files typically define many small functions that have a simple behavior but are critical to ensure readability, correctness, and maintainability. We have observed, however, that some Linux code does not use these functions systematically. In this paper, we propose an approach combining rule-based program matching and transformation with generative programming to generate rules for finding and fixing code fragments that should use the functions defined in header files. We illustrate our approach using an in-depth study based on four typical functions defined in the header file include/linux/usb.h. },
DOI = {10.1145/1509276.1509279},
ISBN = {978-1-60558-450-8},
OPTISSN = {},
KEYWORDS = {DSL, Coccinelle},
URL = {http://portal.acm.org/citation.cfm?doid=1509276.1509279},
OPTURL-PUBLISHER = {},
PDF = {http://www.diku.dk/hjemmesider/ansatte/julia/acp4is09-lawall.pdf}
}
-
Nicolas Palix.
Herodotos, l'historien de vos défauts.
In 7e Conférence Francaise en Systèmes d'Exploitation (CFSE),
Toulouse, France,
September 2009.
Keyword(s): Herodotos.
Abstract:
Les logiciels évoluent continuellement afin d'améliorer les performances, corriger les erreurs, ou ajouter des fonctionnalités. Cependant, les modifications du code conduisent inévitablement à l'introduction de défauts logiciels. Pour prévenir l'introduction de fautes, il est nécessaire de comprendre pourquoi elles surviennent. Il est donc important de développer des outils et des pratiques aidant à trouver, suivre et prévenir ces défauts. Dans cet article, nous proposons une méthodologie et son outil associé, Herodotos, permettant d'étudier les fautes dans le temps et d'ainsi déterminer le moment de leur apparition et de leur disparition. Herodotos suit, de manière semi-automatisée, les fautes sur plusieurs versions d'un même projet indépendamment des modifications annexes dans les fichiers sources. Il construit des historiques graphiques et calcule des statistiques sur la vie des fautes. Nous avons évalué cette approche sur l'historique de quatre projets open source sur les trois dernières années. Pour chaque projet, nous explorons plusieurs types de fautes qui ont été trouvées par une analyse statique du code. Nous analysons les résultats produits pour comparer les projets sélectionnés et les types de fautes étudiées. |
@INPROCEEDINGS{palix:2009:cfse,
ADDRESS = {Toulouse, France},
AUTHOR = {Nicolas Palix},
BOOKTITLE = {7e Conférence Francaise en Systèmes d'Exploitation (CFSE)},
OPTEDITOR = {},
MONTH = {September},
OPTNOTE = {},
OPTNUMBER = {},
OPTORGANIZATION = {},
OPTPAGES = {},
OPTPUBLISHER = {},
OPTSERIES = {},
TITLE = {Herodotos, l'historien de vos défauts},
OPTVOLUME = {},
YEAR = {2009},
ABSTRACT = {Les logiciels évoluent continuellement afin d'améliorer les performances, corriger les erreurs, ou ajouter des fonctionnalités. Cependant, les modifications du code conduisent inévitablement à l'introduction de défauts logiciels. Pour prévenir l'introduction de fautes, il est nécessaire de comprendre pourquoi elles surviennent. Il est donc important de développer des outils et des pratiques aidant à trouver, suivre et prévenir ces défauts. Dans cet article, nous proposons une méthodologie et son outil associé, Herodotos, permettant d'étudier les fautes dans le temps et d'ainsi déterminer le moment de leur apparition et de leur disparition. Herodotos suit, de manière semi-automatisée, les fautes sur plusieurs versions d'un même projet indépendamment des modifications annexes dans les fichiers sources. Il construit des historiques graphiques et calcule des statistiques sur la vie des fautes. Nous avons évalué cette approche sur l'historique de quatre projets open source sur les trois dernières années. Pour chaque projet, nous explorons plusieurs types de fautes qui ont été trouvées par une analyse statique du code. Nous analysons les résultats produits pour comparer les projets sélectionnés et les types de fautes étudiées.},
OPTDOI = {},
OPTISBN = {},
OPTISSN = {},
KEYWORDS = {Herodotos},
OPTURL = {},
OPTURL-PUBLISHER = {},
PDF = {http://www.irit.fr/Toulouse2009/Toulouse2009/papiers/cfse8.pdf}
}
-
Nicolas Palix,
Julia Lawall,
and Gilles Muller.
Herodotos: A Tool to Expose Bugs' Lives.
Research Report RR-6984,
INRIA,
2009.
Keyword(s): Occurrence histories,
Software quality,
Software evolution,
Static code analysis,
Coccinelle,
Herodotos.
Abstract:
Software is continually evolving, to improve performance, correct errors, and add new features. Code modifications, however, inevitably lead to the introduction of defects. To prevent the introduction of defects, one has to understand why they occur. Thus, it is important to develop tools and practices that aid in defect finding, tracking and prevention. In this paper, we propose a methodology and associated tool, Herodotos, to study defects over time. Herodotos semi-automatically tracks defects over multiple versions of a software project, independent of other changes in the source files. It builds a graphical history of each defect and gives some statistics based on the results. We have evaluated this approach on the history of a representative range of open source projects over the last three years. For each project, we explore several kinds of defects that have been found by static code analysis. We analyze the generated results to compare the selected software projects and defect kinds. |
@TECHREPORT{PALIX:2009:INRIA-00406306:1,
OPTADDRESS = {},
AUTHOR = {Nicolas Palix and Julia Lawall and Gilles Muller},
INSTITUTION = {INRIA},
OPTMONTH = {},
OPTNOTE = {},
NUMBER = {RR-6984},
PAGES = {16},
TITLE = {Herodotos: A Tool to Expose Bugs' Lives},
TYPE = {Research Report},
YEAR = {2009},
ABSTRACT = {Software is continually evolving, to improve performance, correct errors, and add new features. Code modifications, however, inevitably lead to the introduction of defects. To prevent the introduction of defects, one has to understand why they occur. Thus, it is important to develop tools and practices that aid in defect finding, tracking and prevention. In this paper, we propose a methodology and associated tool, Herodotos, to study defects over time. Herodotos semi-automatically tracks defects over multiple versions of a software project, independent of other changes in the source files. It builds a graphical history of each defect and gives some statistics based on the results. We have evaluated this approach on the history of a representative range of open source projects over the last three years. For each project, we explore several kinds of defects that have been found by static code analysis. We analyze the generated results to compare the selected software projects and defect kinds.},
OPTDOI = {},
OPTISBN = {},
OPTISSN = {},
KEYWORDS = {Occurrence histories, Software quality, Software evolution, Static code analysis, Coccinelle, Herodotos},
URL = {http://hal.inria.fr/inria-00406306/},
OPTURL-PUBLISHER = {},
PDF = {http://hal.inria.fr/docs/00/40/63/06/PDF/RR-6984.pdf}
}