me

Julien Henry

Senior Developer at Mathworks

Expert in Static Program Analysis



About

I am currently a senior developer at Mathworks, where I work on the Polyspace products.

Previously, I was a senior scientist at GrammaTech, Inc, in Madison, WI, USA. Before that, I was a postdoctoral researcher at the University of Wisconsin Madison, under the direction of Professor Thomas Reps.

I completed a PhD in Computer Science in the Synchrone team of the Verimag laboratory, advised by Dr. David Monniaux and Dr. Matthieu Moy.

The title of my PhD is "Static Analysis by Abstract Interpretation and Decision Procedures".

Email: julienhenry23 AT gmail DOT com

Research

I am interested in static analysis by Abstract Interpretation, which is a commonly used techique to discover properties about a program (loop invariants, etc.). This technique computes an over-approximations of the set of possible states of the program. I am particularly interested in the relation between abstract interpretation and decision procedures (Satisfiability Modulo Theories); in particular: how to improve abstract interpretation using SMT, and how to improve the efficiency of SMT solvers by using techniques used in abstract interpretation.

More »

Teaching

From september 2011 to January 2014, I was teaching assistant at Grenoble-INP Ensimag.

From september 2012 to January 2014, I was also teaching at Grenoble-INP Esisar.

More »


Research

PhD Thesis

Julien Henry Static Analysis by Abstract Interpretation and Decision Procedures
Manuscript, slides

Publications

  • Julien Henry, Mihail Asavoae, David Monniaux, Claire Maiza: How to compute worst-case execution time by optimization modulo theory and a clever encoding of program semantics, (LCTES'14), paper, slides
  • Julien Henry, David Monniaux, Matthieu Moy: PAGAI: a path sensitive static analyser , (TAPAS'12), paper, slides
  • Julien Henry, David Monniaux, Matthieu Moy: Succinct Representations for Abstract Interpretation, Static Analysis Symposium 2012 (SAS'12), pages 283-299, paper, slides
  • Nicolas Halbwachs, Julien Henry: When the decreasing sequence fails, Static Analysis Symposium 2012 (SAS'12), pages 198-213, paper

Pagai static analyser

I am the main contributor of Pagai, an open source static analyser for LLVM bitcode. It computes invariants involving the numerical variables of a program using state-of-the-art Abstract Interpretation based techniques.

Download Pagai »

LCTES'14 SMT-lib2 benchmarks

Some benchmarks are available here.

~$ pagai -i main.bc
int main() {
	int x = 0;
	int y = 0;

	/* reachable */
	while (1) {
		/* invariant:
		102-x-y >= 0
		y >= 0
		x-y >= 0
		*/
		if (x <= 50)  {
			// safe
			y++;
		} else // safe
		       y--;
	

		if (y < 0) break;
		// safe
		x++;
	}
 	
	// safe
	/* assert OK */
	assert(x+y<=101);
	/* assert OK */
	assert(x <= 102);
/* reachable */
}

Teaching (in French...)

Langages et Compilation

More »

CM et TD, 4A Grenoble-INP Esisar, 2012-2013 à 2013-2014

Circuits Numériques et Éléments d'Architecture

TP, 1A Grenoble-INP Ensimag, de 2011-2012 à 2013-2014

TP Unix : Intro et Programmation shell

TP, 1A Grenoble-INP Ensimag, 2013-2014

Projet Bases de Données

TP, 2A Grenoble-INP Ensimag, 2011-2012

Principes des Systèmes de Gestion de Bases de Données

Cours-TD, 2A Grenoble-INP Ensimag, 2011-2012