In den Jahren von 1970 bis 1974 besuchte er die École Alsacienne in Paris. Von 1974 bis 1978 studierte er Mathematik und Wirtschaft an der Universität Paris-Dauphine (Paris 9) und Mathematik an der Universität Pierre und Marie Curie. Von 1979 bis 1981 forschte er an letzterer unter der Betreuung von Michel Las Vergnas in der Forschungsgruppe von Claude Berge über Coupling in endlichen und unendlichen Graphen und hielt Vorlesungen an der ESIEA (École supérieure d'informatique d'électronique et d'automatique). 1981 wurde er an der Universität Pierre und Marie Curie in Mathematik promoviert.
Von 1982 bis 1983 absolvierte er seinen Wehrdienst als Presseoffizier bei der Einheit SIRPA Air (Service d'informations et de relations publiques des armées) der französischen Luftstreitkräfte. Danach forschte er zwei Jahre über statistische Datenbanken am Forschungszentrum IRT (jetzt INRETS) in Paris. Von 1985 bis 1993 forschte er am European Computer-Industry Research Center in München über automatisches Beweisen, Logikprogrammierung und deduktive Datenbanken. Seit 1994 hat er einen Lehrstuhl für Programmier- und Modellierungssprachen an der Ludwig-Maximilians-Universität München inne.