Team, Visitors, External Collaborators
Overall Objectives
Research Program
Application Domains
Highlights of the Year
New Software and Platforms
New Results
Bilateral Contracts and Grants with Industry
Partnerships and Cooperations
XML PDF e-pub
PDF e-Pub


Major publications by the team in recent years
T. Bourke, L. Brun, P. Dagand, X. Leroy, M. Pouzet, L. Rieg.
A formally verified compiler for Lustre, in: PLDI, 2017, pp. 586–601.
J. Brunel, D. Doligez, R. R. Hansen, J. L. Lawall, G. Muller.
A foundation for flow-based program matching using temporal logic and model checking, in: POPL, Savannah, GA, USA, ACM, January 2009, pp. 114–126.
L. Burgy, L. Réveillère, J. L. Lawall, G. Muller.
Zebu: A Language-Based Approach for Network Protocol Message Processing, in: IEEE Trans. Software Eng., 2011, vol. 37, no 4, pp. 575-591.
P. Dagand, N. Tabareau, É. Tanter.
Partial type equivalences for verified dependent interoperability, in: ICFP, 2016, pp. 298–310.
D. Mercadier, P. Dagand.
Usuba: high-throughput and constant-time ciphers, by construction, in: PLDI, 2019, pp. 157–173.
G. Muller, C. Consel, R. Marlet, L. P. Barreto, F. Mérillon, L. Réveillère.
Towards Robust OSes for Appliances: A New Approach Based on Domain-specific Languages, in: Proceedings of the 9th Workshop on ACM SIGOPS European Workshop: Beyond the PC: New Challenges for the Operating System, Kolding, Denmark, 2000, pp. 19–24.
G. Muller, J. L. Lawall, H. Duchesne.
A Framework for Simplifying the Development of Kernel Schedulers: Design and Performance Evaluation, in: HASE - High Assurance Systems Engineering Conference, Heidelberg, Germany, IEEE, October 2005, pp. 56–65.
F. Mérillon, L. Réveillère, C. Consel, R. Marlet, G. Muller.
Devil: An IDL for hardware programming, in: Proceedings of the Fourth Symposium on Operating Systems Design and Implementation (OSDI), San Diego, California, USENIX Association, October 2000, pp. 17–30.
Y. Padioleau, J. L. Lawall, R. R. Hansen, G. Muller.
Documenting and Automating Collateral Evolutions in Linux Device Drivers, in: EuroSys, Glasgow, Scotland, March 2008, pp. 247–260.
N. Palix, G. Thomas, S. Saha, C. Calvès, J. L. Lawall, G. Muller.
Faults in Linux 2.6, in: ACM Transactions on Computer Systems, June 2014, vol. 32, no 2, pp. 4:1–4:40.
Publications of the year

Articles in International Peer-Reviewed Journals

T. Hoang, J. L. Lawall, Y. Tian, R. J. Oentaryo, D. Lo.
PatchNet: Hierarchical Deep Learning-Based Stable Patch Identification for the Linux Kernel, in: IEEE Transactions on Software Engineering, November 2019, 17 p. [ DOI : 10.1109/TSE.2019.2952614 ]
G. Lena Cota, S. Ben Mokhtar, G. Gianini, E. Damiani, J. L. Lawall, G. Muller, L. Brunie.
RACOON++: A Semi-Automatic Framework for the Selfishness-Aware Design of Cooperative Systems, in: IEEE Transactions on Dependable and Secure Computing, July 2019, vol. 16, no 4, pp. 635-650. [ DOI : 10.1109/TDSC.2017.2706286 ]

International Conferences with Proceedings

J.-J. Bai, J. L. Lawall, Q.-L. Chen, S.-M. Hu.
Effective Static Analysis of Concurrency Use-After-Free Bugs in Linux Device Drivers Effective Static Analysis of Concurrency Use-After-Free Bugs in Linux Device Drivers, in: 2019 USENIX Annual Technical Conference, Renton, Washington, United States, July 2019.
J.-J. Bai, J. L. Lawall, W. Tan, S.-M. Hu.
DCNS: Automated Detection of Conservative Non-Sleep Defects in the Linux Kernel, in: ASPLOS 2019 - The 24th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Providence, Rhode Island, United States, ACM, April 2019, pp. 287-299. [ DOI : 10.1145/3297858.3304065 ]
B. Bui, D. Mvondo, B. Teabe, K. Jiokeng, L. Wapet, A. Tchana, G. Thomas, D. Hagimont, G. Muller, N. Depalma.
When eXtended Para-Virtualization (XPV) meets NUMA, in: EUROSYS 2019: 14th European Conference on Computer Systems, Dresde, Germany, ACM Press, 2019, 7 p. [ DOI : 10.1145/3302424.3303960 ]
D. Carver, R. Gouicem, J.-P. Lozi, J. Sopena, B. Lepers, W. Zwaenepoel, N. Palix, J. L. Lawall, G. Muller.
Fork/Wait and Multicore Frequency Scaling: a Generational Clash, in: 10th Workshop on Programming Languages and Operating Systems, Huntsville, Canada, ACM Press, October 2019, pp. 53-59. [ DOI : 10.1145/3365137.3365400 ]
Q.-L. Chen, J.-J. Bai, Z.-M. Jiang, J. L. Lawall, S.-M. Hu.
Detecting Data Races Caused by Inconsistent Lock Protection in Device Drivers, in: SANER 2019 - 26th IEEE International Conference on Software Analysis, Evolution and Reengineering, Hangzhou, China, February 2019.
C. Courtaud, J. Sopena, G. Muller, D. Gracia.
Improving Prediction Accuracy of Memory Interferences for Multicore Platforms, in: RTSS 2019 - 40th IEEE Real-Time Systems Symposium, Hong-Kong, China, IEEE, December 2019.
T. Hoang, J. L. Lawall, R. J. Oentaryo, Y. Tian, D. Lo.
PatchNet: A Tool for Deep Patch Classification, in: ICSE-Companion 2019 - IEEE/ACM 41st International Conference on Software Engineering, Montreal, Canada, IEEE, May 2019, pp. 83-86. [ DOI : 10.1109/ICSE-Companion.2019.00044 ]
Z.-M. Jiang, J.-J. Bai, J. L. Lawall, S.-M. Hu.
Fuzzing Error Handling Code in Device Drivers Based on Software Fault Injection, in: ISSRE 2019 - The 30th International Symposium on Software Reliability Engineering, Berlin, Germany, October 2019. [ DOI : 10.1109/ISSRE.2019.00022 ]
H. J. Kang, F. Thung, J. L. Lawall, G. Muller, L. Jiang, D. Lo.
Semantic Patches for Java Program Transformation, in: 33rd European Conference on Object-Oriented Programming (ECOOP 2019), London, United Kingdom, Leibniz International Proceedings in Informatics (LIPIcs), Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, July 2019, vol. 134, pp. 22:1–22:27. [ DOI : 10.4230/LIPIcs.ECOOP.2019.22 ]
F. Laniel, D. Carver, J. Sopena, F. Wajsburt, J. Lejeune, M. Shapiro.
Highlighting the Container Memory Consolidation Problems in Linux, in: 2019 IEEE 18th International Symposium on Network Computing and Applications (NCA), Cambridge, United States, IEEE, September 2019, pp. 1-4. [ DOI : 10.1109/NCA.2019.8935034 ]
D. Mercadier, P.-É. Dagand.
Usuba: high-throughput and constant-time ciphers, by construction, in: PLDI 2019 - 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, Phoenix, United States, ACM Press, June 2019, pp. 157-173. [ DOI : 10.1145/3314221.3314636 ]

Internal Reports

H. J. Kang, F. Thung, J. L. Lawall, G. Muller, L. Jiang, D. Lo.
Automating Program Transformation for Java Using Semantic Patches, Inria Paris, February 2019, no RR-9256.
References in notes
T. Ball, E. Bounimova, B. Cook, V. Levin, J. Lichtenberg, C. McGarvey, B. Ondrusek, S. K. Rajamani, A. Ustuner.
Thorough Static Analysis of Device Drivers, in: EuroSys, 2006, pp. 73–85.
A. Baumann, P. Barham, P.-É. Dagand, T. Harris, R. Isaacs, S. Peter, T. Roscoe, A. Schüpbach, A. Singhania.
The multikernel: A new OS architecture for scalable multicore systems, in: SOSP, 2009, pp. 29–44.
T. F. Bissyandé, L. Réveillère, J. L. Lawall, Y.-D. Bromberg, G. Muller.
Implementing an embedded compiler using program transformation rules, in: Software: Practice and Experience, 2013.
T. F. Bissyandé, L. Réveillère, J. L. Lawall, Y.-D. Bromberg, G. Muller.
Implementing an Embedded Compiler using Program Transformation Rules, in: Software: Practice and Experience, February 2015, vol. 45, no 2, pp. 177-196.
T. F. Bissyandé, L. Réveillère, J. L. Lawall, G. Muller.
Ahead of Time Static Analysis for Automatic Generation of Debugging Interfaces to the Linux Kernel, in: Automated Software Engineering, May 2014, pp. 1-39. [ DOI : 10.1007/s10515-014-0152-4 ]
A. P. Black, S. Ducasse, O. Nierstrasz, D. Pollet.
Pharo by Example, Square Bracket Associates, 2010.
E. Brady, K. Hammond.
Resource-Safe Systems Programming with Embedded Domain Specific Languages, in: 14th International Symposium on Practical Aspects of Declarative Languages (PADL), LNCS, Springer, 2012, vol. 7149, pp. 242–257.
T. Braibant, D. Pous.
An Efficient Coq Tactic for Deciding Kleene Algebras, in: 1st International Conference on Interactive Theorem Proving (ITP), LNCS, Springer, 2010, vol. 6172, pp. 163–178.
C. Cadar, D. Dunbar, D. R. Engler.
KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs, in: OSDI, 2008, pp. 209–224.
V. Chipounov, G. Candea.
Reverse Engineering of Binary Device Drivers with RevNIC, in: EuroSys, 2010, pp. 167–180.
A. Chlipala.
The Bedrock Structured Programming System: Combining Generative Metaprogramming and Hoare Logic in an Extensible Program Verifier, in: ICFP, 2013, pp. 391–402.
L. A. Clarke.
A system to generate test data and symbolically execute programs, in: IEEE Transactions on Software Engineering, 1976, vol. 2, no 3, pp. 215–222.
E. Clarke, O. Grumberg, S. Jha, Y. Lu, H. Veith.
Counterexample-guided abstraction refinement for symbolic model checking, in: J. ACM, 2003, vol. 50, no 5, pp. 752–794.
P. Cousot, R. Cousot.
Abstract Interpretation: Past, Present and Future, in: CSL-LICS, 2014, pp. 2:1–2:10.
P.-É. Dagand, A. Baumann, T. Roscoe.
Filet-o-Fish: practical and dependable domain-specific languages for OS development, in: Programming Languages and Operating Systems (PLOS), 2009, pp. 51–55.
I. Dillig, T. Dillig, A. Aiken.
Sound, complete and scalable path-sensitive analysis, in: PLDI, June 2008, pp. 270–280.
D. R. Engler, B. Chelf, A. Chou, S. Hallem.
Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions, in: OSDI, 2000, pp. 1–16.
D. R. Engler, D. Y. Chen, A. Chou, B. Chelf.
Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code, in: SOSP, 2001, pp. 57–72.
A. Goldberg, D. Robson.
Smalltalk-80: The Language and Its Implementation, Addison-Wesley, 1983.
L. Gu, A. Vaynberg, B. Ford, Z. Shao, D. Costanzo.
CertiKOS: A Certified Kernel for Secure Cloud Computing, in: Proceedings of the Second Asia-Pacific Workshop on Systems (APSys), 2011, pp. 3:1–3:5.
L. Guo, J. L. Lawall, G. Muller.
Oops! Where did that code snippet come from?, in: 11th Working Conference on Mining Software Repositories, MSR, Hyderabad, India, ACM, May 2014, pp. 52–61.
A. Israeli, D. G. Feitelson.
The Linux kernel as a case study in software evolution, in: Journal of Systems and Software, 2010, vol. 83, no 3, pp. 485–501.
A. Kadav, M. M. Swift.
Understanding modern device drivers, in: ASPLOS, 2012, pp. 87–98.
A. Kennedy, N. Benton, J. B. Jensen, P.-É. Dagand.
Coq: The World's Best Macro Assembler?, in: PPDP, Madrid, Spain, ACM, 2013, pp. 13–24.
G. A. Kildall.
A Unified Approach to Global Program Optimization, in: POPL, 1973, pp. 194–206.
G. Klein, K. Elphinstone, G. Heiser, J. Andronick, D. Cock, P. Derrin, D. Elkaduwe, K. Engelhardt, R. Kolanski, M. Norrish, T. Sewell, H. Tuch, S. Winwood.
seL4: formal verification of an OS kernel, in: SOSP, 2009, pp. 207–220.
J. L. Lawall, J. Brunel, N. Palix, R. R. Hansen, H. Stuart, G. Muller.
WYSIWIB: Exploiting fine-grained program structure in a scriptable API-usage protocol-finding process, in: Software, Practice Experience, 2013, vol. 43, no 1, pp. 67–92.
J. L. Lawall, B. Laurie, R. R. Hansen, N. Palix, G. Muller.
Finding Error Handling Bugs in OpenSSL using Coccinelle, in: Proceeding of the 8th European Dependable Computing Conference (EDCC), Valencia, Spain, April 2010, pp. 191–196.
J. L. Lawall, D. Lo.
An automated approach for finding variable-constant pairing bugs, in: 25th IEEE/ACM International Conference on Automated Software Engineering, Antwerp, Belgium, September 2010, pp. 103–112.
J. L. Lawall, D. Palinski, L. Gnirke, G. Muller.
Fast and Precise Retrieval of Forward and Back Porting Information for Linux Device Drivers, in: 2017 USENIX Annual Technical Conference, Santa Clara, CA, United States, July 2017, 12 p.
C. Le Goues, W. Weimer.
Specification Mining with Few False Positives, in: TACAS, York, UK, Lecture Notes in Computer Science, March 2009, vol. 5505, pp. 292–306.
Z. Li, S. Lu, S. Myagmar, Y. Zhou.
CP-Miner: A Tool for Finding Copy-paste and Related Bugs in Operating System Code, in: OSDI, 2004, pp. 289–302.
Z. Li, Y. Zhou.
PR-Miner: automatically extracting implicit programming rules and detecting violations in large software code, in: Proceedings of the 10th European Software Engineering Conference, 2005, pp. 306–315.
D. Lo, S. Khoo.
SMArTIC: towards building an accurate, robust and scalable specification miner, in: FSE, 2006, pp. 265–275.
J.-P. Lozi, F. David, G. Thomas, J. L. Lawall, G. Muller.
Fast and Portable Locking for Multicore Architectures, in: ACM Transactions on Computer Systems, January 2016. [ DOI : 10.1145/2845079 ]
S. Lu, S. Park, Y. Zhou.
Finding Atomicity-Violation Bugs through Unserializable Interleaving Testing, in: IEEE Transactions on Software Engineering, 2012, vol. 38, no 4, pp. 844–860.
M. Mernik, J. Heering, A. M. Sloane.
When and How to Develop Domain-specific Languages, in: ACM Comput. Surv., December 2005, vol. 37, no 4, pp. 316–344.
G. Morrisett, G. Tan, J. Tassarotti, J.-B. Tristan, E. Gan.
RockSalt: better, faster, stronger SFI for the x86, in: PLDI, 2012, pp. 395-404.
M. Odersky, T. Rompf.
Unifying functional and object-oriented programming with Scala, in: Commun. ACM, 2014, vol. 57, no 4, pp. 76–86.
M. C. Olesen, R. R. Hansen, J. L. Lawall, N. Palix.
Coccinelle: Tool support for automated CERT C Secure Coding Standard certification, in: Science of Computer Programming, October 2014, vol. 91, no B, pp. 141–160.
T. Reps, T. Ball, M. Das, J. Larus.
The Use of Program Profiling for Software Maintenance with Applications to the Year 2000 Problem, in: ESEC/FSE, 1997, pp. 432–449.
L. R. Rodriguez, J. L. Lawall.
Increasing Automation in the Backporting of Linux Drivers Using Coccinelle, in: 11th European Dependable Computing Conference - Dependability in Practice, Paris, France, 11th European Dependable Computing Conference - Dependability in Practice, November 2015.
C. Rubio-González, H. S. Gunawi, B. Liblit, R. H. Arpaci-Dusseau, A. C. Arpaci-Dusseau.
Error propagation analysis for file systems, in: PLDI, Dublin, Ireland, ACM, June 2009, pp. 270–280.
L. Ryzhyk, P. Chubb, I. Kuz, E. Le Sueur, G. Heiser.
Automatic device driver synthesis with Termite, in: SOSP, 2009, pp. 73–86.
L. Ryzhyk, A. Walker, J. Keys, A. Legg, A. Raghunath, M. Stumm, M. Vij.
User-Guided Device Driver Synthesis, in: OSDI, 2014, pp. 661–676.
R. k. Saha, J. L. Lawall, S. Khurshid, D. E. Perry.
On the Effectiveness of Information Retrieval Based Bug Localization for C Programs, in: ICSME 2014 - 30th International Conference on Software Maintenance and Evolution, Victoria, Canada, IEEE, September 2014, pp. 161-170. [ DOI : 10.1109/ICSME.2014.38 ]
R. Saha, J. L. Lawall, S. Khurshid, D. E. Perry.
On the Effectiveness of Information Retrieval based Bug Localization for C Programs, in: International Conference on Software Maintenance and Evolution (ICSME), Victoria, BC, Canada, September 2014.
S. Saha, J.-P. Lozi, G. Thomas, J. L. Lawall, G. Muller.
Hector: Detecting resource-release omission faults in error-handling code for systems software, in: DSN 2013 - 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), Budapest, Hungary, IEEE Computer Society, June 2013, pp. 1-12. [ DOI : 10.1109/DSN.2013.6575307 ]
D. A. Schmidt.
Data Flow Analysis is Model Checking of Abstract Interpretations, in: POPL, 1998, pp. 38–48.
P. Senna Tschudin, J. L. Lawall, G. Muller.
3L: Learning Linux Logging, in: BElgian-NEtherlands software eVOLution seminar (BENEVOL 2015), Lille, France, December 2015.
M. Shapiro.
Purpose-built languages, in: Commun. ACM, 2009, vol. 52, no 4, pp. 36–41.
R. Tartler, D. Lohmann, J. Sincero, W. Schröder-Preikschat.
Feature consistency in compile-time-configurable system software: facing the Linux 10,000 feature problem, in: EuroSys, 2011, pp. 47–60.
F. Thung, D. X. B. Le, D. Lo, J. L. Lawall.
Recommending Code Changes for Automatic Backporting of Linux Device Drivers, in: 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME), Raleigh, North Carolina, United States, IEEE, October 2016.
W. Wang, M. Godfrey.
A Study of Cloning in the Linux SCSI Drivers, in: Source Code Analysis and Manipulation (SCAM), IEEE, 2011.
J. Yang, C. Hawblitzel.
Safe to the Last Instruction: Automated Verification of a Type-safe Operating System, in: PLDI, 2010, pp. 99–110.