domingo, 1 de enero de 2012

Entrevista a Francesco Logozzo – Microsoft Research

Durante la semana del 25 de Julio de 2011, tuve la oportunidad de participar (gracias a Microsoft) en la edición 2011 de la Escuela de Ciencias Informáticas (ECI), organizada por la Facultad de Ciencias Exactas de la UBA.

Como alumno, participé en el curso “Language Agnostic Automated Program Verification in .Net using Static Analisys Tools” (http://www.dc.uba.ar/events/eci/2011/cursos/t2-programverification-resumen ) dictado por el investigador de Microsoft Research, Francesco Logozzo.

A su vez, tuve la posibilidad de entrevistarlo el día 27 de Julio, antes de ingresar a una de las clases.A continuación, la entrevista completa (en idioma Inglés) con Francesco y algunas fotos de las clases.

En mi próximo post, incluiré un resumen de la herramienta presentada (Code Contracts) que forma parte del .Net Framework 4.0.


Interview – Francesco Logozzo

July 27th 2011, ECI 2011, UBA, Argentina – by Ignacio Raffa

Short Bio

Francesco Logozzo (http://research.microsoft.com/en-us/people/logozzo/) is a full time researcher at Microsoft Research (Redmond) working on the Code Contracts (http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx) project, a language-agnostic way to express coding assumptions in .NET programs.

Interview

Question: Can you tell us about your beginnings?

Yes. I’m Italian, I was born in the south of Italy but my family moved to the centre of Italy. I studied Computer Science at the Scuola Normale Supreriore[1] of Pisa . Scuola Normale is a very elitist school that take an exam to enter (really tough), from > 400 people that taking the exam, only 24 enters the science class (Maths, physics, chemistry and of course Computer science). It’s similar to the French Grandes écoles[2] system: essentially you go to the university on Pisa, and in parallel you go to the Scuola Normale Superiore, so that mean that you have the double of classes that regular people, and there are also some strict rules like your average should be really high, you must make all your exams in time and so on. It’s tough but is a great thing you got a lot of friends that are very 2011-07-25-16.22.52_thumb3smart people, it’s a wonderful place to be.

That makes a big change in my life, because when I was there as an undergraduate one of the things that they require (in addition to my exams) is to give a talk on an advanced research topic. At the time I asked some professors interested on static analysis on functional languages, and I sent an e-mail to one professor of the university (Prof. Giorgio Levi[3]) asking about what specific topic I can use for the research and the presentation.

He recommends me to talk about Abstract Interpretation on Functional Languages (at the time Abstract Interpretation was unknown to me). I went to talk with him and he gave me some papers to read. One of those is Cousot & Cousot 77[4], and about that he told me “you can see this paper, even for professional researchers it took 10 years to understand it”. When he told me this, I’ve felt really challenged, so I started to study a lot about this topic, and I though “this stuff is really great!” and I fall in love with Abstract Interpretation. My presentation went well, and I’ve found that these two persons (Cousot and Cousot) were in France and one of them was a professor of École Normale Supérieure[5] in France (a twin school of my school in Pisa). I applied and obtained the scholarship for one month in that university to get involved in the topic.

They invite me to complete my master thesis there, so I went back to Pisa and applied for that. I’ve got a six month scholarship to complete my master thesis because they were very happy with me on the first time.

Finally they offered me some funding to complete a PhD also in France. I’ve did my PhD there on Modular Static analysis of Object-Oriented languages[6].

Question: All of that was before Microsoft Research?

Yes. Because of that research for the PhD, I met some people from Microsoft Research at Redmond, we wrote one paper [7]with Rustan Leino[8]. Then, they invited me as a visiting researcher on Redmond (I spent four month over there), and later on I’ have an interview for a two-year post-doctorate position, and after one year of that I’ve applied for a Full-Time Researcher. And I moved there with my family.

Question: Can you tell us about your day-to-day work?

Yeah, it’s a good question! I have no typical day; because the kind of work I do (research) is both creative and engineering work. In a way is not only like an Art because you have things that pops up, like “yes, I have this big idea”, but then the intuition is not enough, you need to prove that it’s correct, making some theorems, formalizing it or writing some piece of code to test it. And to be honest, most of the time you discover that the intuition is false (it doesn’t work) but the time when it works it feels really good.

So, to sum up my day: I go to work (I woke up, I take care of my kids and family) and then I usually bike to work – I think that this a very good think, because when I’m biking I have like an hour when I can really and only think. I have no mail, no calls, and no meetings and I can just think.

I know that you have mini-vans with internet connection if you want.

Yes, you can check your mails and you are working what is good, but I think that sometimes is good to take the things back, and just simply thinking. And this is a great time for do that, this is probably the most productive time of my day.

2011-07-26-16.05.55_thumb3
Then, when I’ve arrive I read my emails, I have meetings with the product teams, other researchers. Then I have time for read papers, start proving things and so on.

Question: So you have relationship with the Product Teams?

Yes, we have relationship with the Product Teams also. Essentially we are trying to push our ideas to the product groups.

Question: Regarding that point, how long it takes for you or the team to include Code Contracts as part of CLR 4.0[9]?

Actually it took some time, because our project (Code Contracts) comes after Spec# project (before of me) that was a really ambitious project, requiring changes in the compiler, introduction of new keywords, etc. and that was too much to push to production.

So we start with a library, that took some time (between 2 or 3 years), and we have regular meetings with product groups to see all the details.

Question: They took your implementation or they create a new one?

They took ours, may be they change some things, but the core of the library developed in our team. Usually they take some code to improve it to production code quality, and refactor some things that can be smoother.

Question: So, the last question is, do you have any message for current students (not necessary PhD students) that are interested in Research?

Well, I’ll try to be honest. Research is wonderful, but is also tough. Because like I said earlier, sometimes you think that you have a really great idea, but you realize that it’s not and you get depressed.

So, there are two things that you need for research:

1) The raw mind power, enable to be creative and formal to explain to the others

2) The second one is the endurance to reach it. Because it is really different to university and college. When you do research you don’t have the sources to study (like a traditional exam) and the solution can take one day, one week, one year or several years!

So what I say to my interns, in a way it’s like a time-trial at Tour de France[10]: you have to find yourself the pace in order to go and reach the goal.

But, whenever you publish a paper, you think that you are adding a little brick to the knowledge on the universe, and that is a wonderful sensation.

And other things are nice, like travel a lot and meet a lot of really intelligent people.

You can travel to Argentina, Italy, Germany and so many places to make research in a really nice environment.

Thank you So Much for your time and the interview!


Other Resources


References

[1] Scuola Normale Superiore di Pisa - http://www.sns.it/en/

[2] Grande écoles - http://en.wikipedia.org/wiki/Grandes_écoles

[3] Prof. Giorgio Levi - http://www.di.unipi.it/~levi/levi.html

[4] Patrick and Radhia Cousot 1977 - http://www.di.ens.fr/~cousot/COUSOTpapers/POPL77.shtml

[5] École Normale Supérieure, Paris - http://www.ens.fr/?lang=en

[6] Modular static analysis of object-oriented languages, 2004 - http://www.imprimerie.polytechnique.fr/Theses/Files/Logozzo.pdf

[7] Loop Invariants on Demand - http://research.microsoft.com/pubs/78041/aplas05.pdf

[8] K. Rustan M. Leino , Principal Researcher at Microsoft - http://research.microsoft.com/en-us/um/people/leino/

[9] CLR Inside Out : Code Contracts - http://msdn.microsoft.com/en-us/magazine/ee236408.aspx

[10] Tour de France - http://en.wikipedia.org/wiki/Tour_de_France

No hay comentarios:

Publicar un comentario