Books

[1] Xavier Leroy. Le logiciel, entre l'esprit et la matière, volume 284 of Leçons inaugurales du Collège de France. OpenEdition Books, December 2019.
[2] Xavier Leroy. Le logiciel, entre l'esprit et la matière, volume 284 of Leçons inaugurales du Collège de France. Fayard, April 2019.
[3] Pierre Weis and Xavier Leroy. Le langage Caml. Dunod, 2 edition, 1999.
[4] Xavier Leroy and Pierre Weis. Manuel de référence du langage Caml. InterÉditions, 1993.

Journal articles

[1] Andrew W. Appel and Xavier Leroy. Efficient extensional binary tries. Journal of Automated Reasoning, 67:article 8, 2023.
[2] Nathanaël Courant and Xavier Leroy. Verified code generation for the polyhedral model. Proc. ACM Program. Lang., 5(POPL):40:1--40:24, 2021.
[3] Sylvie Boldo, Jacques-Henri Jourdan, Xavier Leroy, and Guillaume Melquiond. Verified compilation of floating-point computations. Journal of Automated Reasoning, 54(2):135--163, 2015.
[4] Andrew W. Appel, Robert Dockins, and Xavier Leroy. A list-machine benchmark for mechanized metatheory. Journal of Automated Reasoning, 49(3):453--491, 2012.
[5] Xavier Leroy and Hervé Grall. Coinductive big-step operational semantics. Information and Computation, 207(2):284--304, 2009.
[6] Xavier Leroy. A formally verified compiler back-end. Journal of Automated Reasoning, 43(4):363--446, 2009.
[7] Sandrine Blazy and Xavier Leroy. Mechanized semantics for the Clight subset of the C language. Journal of Automated Reasoning, 43(3):263--288, 2009.
[8] Tom Hirschowitz, Xavier Leroy, and J. B. Wells. Compilation of extended recursion in call-by-value functional languages. Higher-Order and Symbolic Computation, 22(1):3--66, 2009.
[9] Zaynah Dargaye and Xavier Leroy. A verified framework for higher-order uncurrying optimizations. Higher-Order and Symbolic Computation, 22(3):199--231, 2009.
[10] Xavier Leroy. Formal verification of a realistic compiler. Communications of the ACM, 52(7):107--115, 2009.
[11] Laurence Rideau, Bernard P. Serpette, and Xavier Leroy. Tilting at windmills with Coq: formal verification of a compilation algorithm for parallel moves. Journal of Automated Reasoning, 40(4):307--326, 2008.
[12] Xavier Leroy and Sandrine Blazy. Formal verification of a C-like memory model and its uses for verifying program transformations. Journal of Automated Reasoning, 41(1):1--31, 2008.
[13] Tom Hirschowitz and Xavier Leroy. Mixin modules in a call-by-value setting. ACM Transactions on Programming Languages and Systems, 27(5):857--881, 2005.
[14] Xavier Leroy. Java bytecode verification: algorithms and formalizations. Journal of Automated Reasoning, 30(3--4):235--269, 2003.
[15] Xavier Leroy. Bytecode verification on Java smart card. Software -- Practice & Experience, 32(4):319--340, 2002.
[16] Xavier Leroy and François Pessaux. Type-based analysis of uncaught exceptions. ACM Transactions on Programming Languages and Systems, 22(2):340--377, 2000.
[17] Xavier Leroy. A modular module system. Journal of Functional Programming, 10(3):269--303, 2000.
[18] P. H. Hartel, M. Feeley, M. Alt, L. Augustsson, P. Baumann, M. Beemster, E. Chailloux, C. H. Flood, W. Grieskamp, J. H. G. van Groningen, K. Hammond, B. Hausman, M. Y. Ivory, R. E. Jones, J. Kamperman, P. Lee, X. Leroy, R. D. Lins, S. Loosemore, N. Röjemo, M. Serrano, J.-P. Talpin, J. Thackray, S. Thomas, P. Walters, P. Weis, and P. Wentworth. Benchmarking implementations of functional languages with “Pseudoknot”, a float-intensive benchmark. Journal of Functional Programming, 6(4):621--655, 1996.
[19] Xavier Leroy. A syntactic theory of type generativity and sharing. Journal of Functional Programming, 6(5):667--698, 1996.
[20] Xavier Leroy and Michel Mauny. Dynamics in ML. Journal of Functional Programming, 3(4):431--463, 1993.

Book chapters

[1] Xavier Leroy, Andrew W. Appel, Sandrine Blazy, and Gordon Stewart. The CompCert memory model. In Andrew W. Appel, editor, Program Logics for Certified Compilers, pages 237--271. Cambridge University Press, March 2014.
[2] Xavier Leroy. Mechanized semantics. In J. Esparza, B. Spanfelner, and O. Grumberg, editors, Logics and languages for reliability and security, number 25 in NATO Science for Peace and Security Series D: Information and Communication Security, pages 195--224. IOS Press, 2010.
[3] Xavier Leroy and François Rouaix. Security properties of typed applets. In J. Vitek and C. Jensen, editors, Secure Internet Programming -- Security issues for Mobile and Distributed Objects, number 1603 in LNCS, pages 147--182. Springer, 1999.

Papers in leading conferences

[1] Timothy Bourke, Lélio Brun, Pierre Évariste Dagand, Xavier Leroy, Marc Pouzet, and Lionel Rieg. A formally verified compiler for Lustre. In PLDI 2017: Programming Language Design and Implementation, pages 586--601. ACM, 2017.
[2] Jacques-Henri Jourdan, Vincent Laporte, Sandrine Blazy, Xavier Leroy, and David Pichardie. A formally-verified C static analyzer. In POPL 2015: 42nd symposium Principles of Programming Languages, pages 247--259. ACM, 2015.
[3] Sylvie Boldo, Jacques-Henri Jourdan, Xavier Leroy, and Guillaume Melquiond. A formally-verified C compiler supporting floating-point arithmetic. In ARITH 2013: 21st International Symposium on Computer Arithmetic, pages 107--115. IEEE Computer Society, 2013.
[4] Tahina Ramananandro, Gabriel Dos Reis, and Xavier Leroy. A mechanized semantics for C++ object construction and destruction, with applications to resource management. In POPL 2012: 39th symposium Principles of Programming Languages, pages 521--532. ACM, 2012.
[5] Jacques-Henri Jourdan, François Pottier, and Xavier Leroy. Validating LR(1) parsers. In ESOP 2012: Programming Languages and Systems, 21st European Symposium on Programming, number 7211 in LNCS, pages 397--416. Springer, 2012.
[6] Tahina Ramananandro, Gabriel Dos Reis, and Xavier Leroy. Formal verification of object layout for C++ multiple inheritance. In POPL 2011: 38th symposium Principles of Programming Languages, pages 67--79. ACM, 2011.
[7] Jean-Baptiste Tristan and Xavier Leroy. A simple, verified validator for software pipelining. In POPL 2010: 37th symposium Principles of Programming Languages, pages 83--92. ACM, 2010.
[8] Jean-Baptiste Tristan and Xavier Leroy. Verified validation of Lazy Code Motion. In PLDI 2009: Programming Language Design and Implementation, pages 316--326. ACM, 2009.
[9] Jean-Baptiste Tristan and Xavier Leroy. Formal verification of translation validators: A case study on instruction scheduling optimizations. In POPL 2008: 35th symposium Principles of Programming Languages, pages 17--27. ACM, 2008.
[10] Xavier Leroy. Formal certification of a compiler back-end, or: programming a compiler with a proof assistant. In POPL 2006: 33rd symposium Principles of Programming Languages, pages 42--54. ACM, 2006.
[11] Xavier Leroy. Coinductive big-step operational semantics. In ESOP 2006: European Symposium on Programming, number 3924 in LNCS, pages 54--68. Springer, 2006.
[12] Tom Hirschowitz, Xavier Leroy, and J. B. Wells. Call-by-value mixin modules: reduction semantics, side effects, types. In ESOP 2004: European Symposium on Programming, number 2986 in LNCS, pages 64--78. Springer, 2004.
[13] Tom Hirschowitz and Xavier Leroy. Mixin modules in a call-by-value setting. In ESOP 2002: European Symposium on Programming, number 2305 in LNCS, pages 6--20. Springer, 2002.
[14] Benjamin Grégoire and Xavier Leroy. A compiled implementation of strong reduction. In ICFP 2002: International Conference on Functional Programming, pages 235--246. ACM, 2002.
[15] Xavier Leroy. Java bytecode verification: an overview. In CAV 2001: Computer Aided Verification, number 2102 in LNCS, pages 265--285. Springer, 2001.
[16] François Pessaux and Xavier Leroy. Type-based analysis of uncaught exceptions. In POPL 1999: 26th symposium Principles of Programming Languages, pages 276--290. ACM, 1999.
[17] Xavier Leroy and François Rouaix. Security properties of typed applets. In POPL 1998: 25th symposium Principles of Programming Languages, pages 391--403. ACM, 1998.
[18] Xavier Leroy. Applicative functors and fully transparent higher-order modules. In POPL 1995: 22nd symposium Principles of Programming Languages, pages 142--153. ACM, 1995.
[19] Xavier Leroy. Manifest types, modules, and separate compilation. In POPL 1994: 21st symposium Principles of Programming Languages, pages 109--122. ACM, 1994.
[20] Xavier Leroy. Polymorphism by name for references and continuations. In POPL 1993: 20th symposium Principles of Programming Languages, pages 220--231. ACM, 1993.
[21] Damien Doligez and Xavier Leroy. A concurrent, generational garbage collector for a multithreaded implementation of ML. In POPL 1993: 20th symposium Principles of Programming Languages, pages 113--123. ACM, 1993.
[22] Xavier Leroy. Unboxed objects and polymorphic typing. In POPL 1992: 19th symposium Principles of Programming Languages, pages 177--188. ACM, 1992.
[23] Xavier Leroy and Pierre Weis. Polymorphic type inference and assignment. In POPL 1991: 18th symposium Principles of Programming Languages, pages 291--302. ACM, 1991.

Papers in other international conferences

[1] Xavier Leroy. Well-founded recursion done right. In CoqPL 2024: The Tenth International Workshop on Coq for Programming Languages, London, United Kingdom, January 2024. ACM.
[2] Daniel Kästner, Ulrich Wünsche, Jörg Barrho, Marc Schlickling, Bernhard Schommer, Michael Schmidt, Christian Ferdinand, Xavier Leroy, and Sandrine Blazy. CompCert: Practical experience on integrating and qualifying a formally verified optimizing compiler. In ERTS 2018: Embedded Real Time Software and Systems. SEE, January 2018.
[3] Xavier Leroy, Sandrine Blazy, Daniel Kästner, Bernhard Schommer, Markus Pister, and Christian Ferdinand. CompCert -- a formally verified optimizing compiler. In ERTS 2016: Embedded Real Time Software and Systems. SEE, 2016.
[4] Robbert Krebbers, Xavier Leroy, and Freek Wiedijk. Formal C semantics: CompCert and the C standard. In ITP 2014: Interactive Theorem Proving, number 8558 in LNCS, pages 543--548. Springer, 2014.
[5] Ricardo Bedin França, Sandrine Blazy, Denis Favre-Felix, Xavier Leroy, Marc Pantel, and Jean Souyris. Formally verified optimizing compilation in ACG-based flight control software. In ERTS 2012: Embedded Real Time Software and Systems, 2012.
[6] Valentin Robert and Xavier Leroy. A formally-verified alias analysis. In CPP 2012: Certified Programs and Proofs, number 7679 in LNCS, pages 11--26. Springer, 2012.
[7] Silvain Rideau and Xavier Leroy. Validating register allocation and spilling. In CC 2010: Compiler Construction, number 6011 in LNCS, pages 224--243. Springer, 2010.
[8] Zaynah Dargaye and Xavier Leroy. Mechanized verification of CPS transformations. In LPAR 2007: Logic for Programming, Artificial Intelligence and Reasoning, number 4790 in LNAI, pages 211--225. Springer, 2007.
[9] Yves Bertot, Benjamin Grégoire, and Xavier Leroy. A structured approach to proving compiler optimizations based on dataflow analysis. In TYPES 2004: Types for Proofs and Programs, number 3839 in LNCS, pages 66--81. Springer, 2006.
[10] Roberto Di Cosmo, Berke Durak, Xavier Leroy, Fabio Mancinelli, and Jérôme Vouillon. Maintaining large software distributions: new challenges from the FOSS era. In FRCSS 2006: Future Research Challenges for Software and Services, number 12 in EASST Newsletter, pages 7--20, 2006.
[11] Sandrine Blazy, Zaynah Dargaye, and Xavier Leroy. Formal verification of a C compiler front-end. In FM 2006: Int. Symp. on Formal Methods, number 4085 in LNCS, pages 460--475. Springer, 2006.
[12] Fabio Mancinelli, Roberto Di Cosmo, Jérôme Vouillon, Jaap Boender, Berke Durak, Xavier Leroy, and Ralf Treinen. Managing the complexity of large free and open source package-based software distributions. In ASE 2006: 21st Int. Conf. on Automated Software Engineering, pages 199--208. IEEE Computer Society, 2006.
[13] Serge Abiteboul, Ciarán Bryce, Roberto Di Cosmo, Klaus R. Dittrich, Stéfane Fermigier, Stéphane Laurière, Frédéric Lepied, Xavier Leroy, Tova Milo, Eleonora Panto, Radu Pop, Assaf Sagi, Yotam Shtossel, Florent Villard, and Boris Vrdoljak. EDOS: Environment for the Development and Distribution of Open Source Software. In OSS 2005: International Conference on Open Source Systems, 2005.
[14] Sandrine Blazy and Xavier Leroy. Formal verification of a memory model for C-like imperative languages. In ICFEM 2005: International Conference on Formal Engineering Methods, number 3785 in LNCS, pages 280--299. Springer, 2005.
[15] Cristiano Calcagno, Walid Taha, Liwen Huang, and Xavier Leroy. Implementing multi-stage languages using ASTs, gensym, and reflection. In GPCE 2003: Generative Programming and Component Engineering, number 2830 in LNCS, pages 57--76. Springer, 2003.
[16] Tom Hirschowitz, Xavier Leroy, and J. B. Wells. Compilation of extended recursion in call-by-value functional languages. In PPDP 2003: International Conference on Principles and Practice of Declarative Programming, pages 160--171. ACM, 2003.
[17] Xavier Leroy. On-card bytecode verification for Java Card. In E-SMART 2001: Smart card programming and security, number 2140 in LNCS, pages 150--164. Springer, 2001.
[18] Xavier Leroy. An overview of types in compilation. In TIC 1998: workshop Types in Compilation, number 1473 in LNCS, pages 1--8. Springer, March 1998.
[19] Xavier Leroy and Michel Mauny. Dynamics in ML. In FPCA 1991: Functional Programming Languages and Computer Architecture, number 523 in LNCS, pages 406--426. Springer, 1991.
[20] Xavier Leroy. Efficient data representation in polymorphic languages. In PLILP 1990: Programming Language Implementation and Logic Programming, number 456 in LNCS. Springer, 1990.
[21] Luca Cardelli and Xavier Leroy. Abstract types and the dot notation. In Proceedings IFIP TC2 working conference on programming concepts and methods, pages 479--504. North-Holland, 1990.

Papers in workshops or national conferences

[1] Bernhard Schommer, Christoph Cullmann, Gernot Gebhard, Xavier Leroy, Michael Schmidt, and Simon Wegener. Embedded program annotations for WCET analysis. In WCET 2018: 18th International Workshop on Worst-Case Execution Time Analysis, volume 63 of OASIcs. Dagstuhl Publishing, July 2018.
[2] Daniel Kästner, Xavier Leroy, Sandrine Blazy, Bernhard Schommer, Michael Schmidt, and Christian Ferdinand. Closing the gap -- the formally verified optimizing compiler CompCert. In SSS'17: Developments in System Safety Engineering: Proceedings of the Twenty-fifth Safety-critical Systems Symposium, pages 163--180. CreateSpace, 2017.
[3] Ricardo Bedin França, Denis Favre-Felix, Xavier Leroy, Marc Pantel, and Jean Souyris. Towards formally verified optimizing compilation in flight control software. In PPES 2011: Predictability and Performance in Embedded Systems, number 18 in OASIcs, pages 59--68. Dagstuhl Publishing, 2011.
[4] Andrew W. Appel and Xavier Leroy. A list-machine benchmark for mechanized metatheory (extended abstract). In LFMTP 2006: Int. Workshop on Logical Frameworks and Meta-Languages, number 174/5 in ENTCS, pages 95--108, 2007.
[5] Marco Danelutto, Roberto Di Cosmo, Xavier Leroy, and Susanna Pelagatti. Parallel functional programming with skeletons: the OCamlP3L experiment. In Proceedings ACM workshop on ML and its applications. Cornell University, 1998.
[6] Xavier Leroy. The effectiveness of type-based unboxing. In TIC 1997: workshop Types in Compilation. Technical report BCCS-97-03, Boston College, Computer Science Department, June 1997.
[7] Xavier Leroy. Le système Caml Special Light: modules et compilation efficace en Caml. In Actes des Journées Francophones des Langages Applicatifs, pages 111--131. INRIA, January 1996.
[8] Xavier Leroy. Lessons learned from the translation of documentation from LaTeX to HTML. In ERCIM/W4G Workshop on WWW Authoring and Integration Tools, February 1995.
[9] María-Virginia Aponte and Xavier Leroy. Llamado de procedimientos a distancia y abstracción de tipos. In Proc. 20th CLEI PANEL latino-american computer science conference, pages 1281--1292, 1994.

Dissertations

[1] Xavier Leroy. Polymorphic typing of an algorithmic language. Research report 1778, INRIA, 1992.
[2] Xavier Leroy. Typage polymorphe d'un langage algorithmique. Phd thesis (in french), Université Paris 7, 1992.

Popular science

[1] Xavier Leroy. À la recherche du logiciel parfait. Le Monde, blog Binaire, November 2018.
[2] Xavier Leroy. How I found a crash bug with hyperthreading in Intel's Skylake processors. The Next Web, July 2017.
[3] Xavier Leroy. Comment faire confiance à un compilateur? La Recherche, 440, April 2010.

Technical reports

[1] Xavier Leroy. A locally nameless solution to the POPLmark challenge. Research report 6098, INRIA, January 2007.
[2] Andrew W. Appel and Xavier Leroy. A list-machine benchmark for mechanized metatheory. Research report 5914, INRIA, 2006.
[3] Tom Hirschowitz, Xavier Leroy, and J. B. Wells. On the implementation of recursion in call-by-value functional languages. Research report 4728, INRIA, 2003.
[4] Tom Hirschowitz, Xavier Leroy, and J. B. Wells. A reduction semantics for call-by-value mixin modules. Research report 4682, INRIA, 2003.
[5] Xavier Leroy. Le système Caml Special Light: modules et compilation efficace en Caml. Research report 2721, INRIA, November 1995.
[6] Xavier Leroy. Programmation du système Unix en Caml Light. Technical report 147, INRIA, 1992.
[7] Xavier Leroy. The ZINC experiment: an economical implementation of the ML language. Technical report 117, INRIA, 1990.
[8] Xavier Leroy. Efficient data representation in polymorphic languages. Research report 1264, INRIA, 1990.
[9] Luca Cardelli and Xavier Leroy. Abstract types and the dot notation. Research report 56, Digital Equipment Corporation, Systems Research Center, 1990.

Edition of proceedings

[1] Dominique Charpin and Xavier Leroy, editors. Déchiffrement(s): des hiéroglyphes à l'ADN, Colloque annuel du Collège de France. Odile Jacob, September 2023.
[2] Xavier Leroy and Alwen Tiu, editors. Proceedings of the 2015 Conference on Certified Programs and Proofs, CPP 2015, Mumbai, India, January 15-17, 2015. ACM, 2015.
[3] Nick Benton and Xavier Leroy, editors. ML 2005: Proceedings of the ACM SIGPLAN Workshop on ML, number 148(2) in ENTCS, 2006.
[4] Neil D. Jones and Xavier Leroy, editors. Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2004, Venice, Italy, January 14-16, 2004. ACM, 2004.
[5] Benjamin C. Pierce and Xavier Leroy, editors. Proceedings of the Sixth ACM SIGPLAN International Conference on Functional Programming, ICFP '01, Firenze (Florence), Italy, September 3-5, 2001. ACM, 2001.
[6] Xavier Leroy and Atsushi Ohori, editors. Types in Compilation, Second International Workshop, TIC '98, Kyoto, Japan, March 25-27, 1998, Proceedings, number 1473 in LNCS. Springer, 1998.

Patents

[1] Dominique Bolignano, Xavier Leroy, and Renaud Marlet. Method for controlling program execution integrity by verifying execution trace prints / Procédé de contrôle d'intégrité de programmes par vérification d'empreintes de traces d'exécution, April 2006.
[2] Xavier Leroy, Patrice Hameau, Nicolas Regnault, and Renaud Marlet. Control of data access by dynamically verifying legal references / Contrôle d'accès aux données par vérification dynamique des références licites, August 2005.
[3] Xavier Leroy. Management protocol, method for verifying and transforming a downloaded programme fragment and corresponding systems / Protocole de gestion, procédé de vérification et de transformation d'un fragment de programme téléchargé et systèmes correspondants, December 2001.