Opinion
Computing Applications Last byte

Q&A: From Esterel to HipHop

This year's CNRS Gold Medal recipient, Gérard Berry, discusses his roots in computer science, why computers are stupid, and how he has helped to simplify programming.
Posted
  1. Article
  2. Author
Gérard Berry

As a child, Gérard Berry was so fascinated with chemistry that he built his own lab, but once he discovered his first computer, he knew the machine was for him. In 1982, the pioneering computer scientist began developing Esterel, a time- and event-focused programming language that would eventually be used in avionics, communications systems, microprocessor design, and many other areas. In September, Berry was awarded the CNRS Gold Medal, the most prestigious scientific research honor in France. He holds the first permanent chair in computer science at the Collège de France, and he now is turning his focus to diffuse programming, or controlling the connected objects that make up the Internet of Things.

How were you introduced to computer science?

I studied mathematics and physics at École Polytechnique, one of the main schools in France, and I discovered my first computer there in 1968. That was an old computer, but I really understood very fast that a computer is exactly the opposite of a human being. It’s really fast, really exact, and completely stupid. So it was interesting to figure out how to speak to this beast so that we could have it do whatever we couldn’t do ourselves.

In your lectures, you have spoken about this notion of the stupid computer, and how it is important to be as stupid as a computer when programming. What do you mean by that?

Years ago, I visited a school to teach young children about computing. My motto was that the computer is exactly the contrary of a kid: the kid is clever, not very exact, and quite slow; the computer is extremely exact, very fast, but not clever. I said to the kids that when programming, we must try to be as stupid as a computer. Then I transformed myself into a robot. They had to program me to cross the classroom, but I told them I understood only completely stupid commands. So one kid says "lift your left leg." I lifted my left leg. The other kid says "lift your right leg," and I fell on the floor.

Was this the equivalent of a bug in the code?

Lifting both legs was a bug. A computer is the most extraordinary error amplifier ever built, because a computer has no common sense and no humor. If you give it the wrong order, it will do that 100%. The difference between a bug and no bug could be one character in a million. That’s the difficulty of computing. Most people don’t understand that.

Your big breakthrough was the Esterel programming language. How did that come about?

From 1970 to 1982, I was working on the mathematics of programming. In 1982 I was in an interdisciplinary lab and started working with people in control theory and electronics. My colleagues were in the process of building a miniature autonomous robotic car for a competition, and based on what I knew about programming, the current languages were completely incapable of creating programs for this car.

Why is that?

Because they didn’t deal with time and events. Dealing with time was mostly with how long it takes to compute what we have to do, not with the proper time of the controlled process. So I had the idea of simplifying real-time programming by saying it would be much better if a computer was infinitely fast; it could react in zero time. So then the next question was how would you program an infinitely fast computer? This was the beginning of the Esterel Language.

But computers are not infinitely fast. Especially not in the early 1980s.

People told me this was nonsense; computers take time. I said, "You need to be more clever than that. You don’t have to be as fast as possible. You just have to be as fast as the process you want to control." We worked on it for several years, and we discovered that this whole hypothesis of being infinitely fast both simplified programming and helped us to be faster than others, which was fun.


"We discovered that this whole hypothesis of being infinitely fast both simplified programming and helped us to be faster than others, which was fun."


This more reactive approach made it ideal for the robotics project, but also avionics, in which a plane and its pilot have to react quickly to changing conditions. What were some of the first applications?

We started working with Dassault Aviation, which was building the Rafale fighter jet. Also, people in Bell Labs started using it for communications protocols. Robotics engineers began using it, too. In the 1990s, I discovered that by building Esterel into circuits in a smart way, I could also improve their design and synthesis. In 2000, we created a company, Esterel Technologies, for both hardware and software.


"I also like this idea of changing worlds, being confronted with different subjects, and working with different super-brilliant people."


What was it like to shift from the academic world to industry?

In fact, I was always in close contact with industry as a consultant. What I like about industry is that you can have a much stronger team, because people don’t have their own research to publish; you can concentrate absolutely on the software activity block. I could never have done Esterel v7 [the latest version] in research. It was just too hard.

After the company was sold, you accepted a position at Collège de France, where you remain today. Has the return to academia been a drastic change?

Collège de France is an ideal place. It’s a little like the Institute of Advanced Studies at Princeton, except here we are teaching all subjects. I also like this idea of changing worlds, being confronted with different subjects, and working with different super-brilliant people. I love trying to understand how they see the world. Building an airplane or a circuit, composing music—it doesn’t look the same, but somehow it is the same.

Still, you have also found time to start working in diffuse programming through HipHop, the language you’re developing with Manuel Serrano. How does HipHop work?

Let’s say you want to have a music player that you don’t tell very much and it plays interesting music. For example, you type "Miles Davis," and the system will go look on the Web for MP3s, free music, the most popular songs, friends of Miles Davis. In the background it gathers and processes information from a lot of websites, many of which are broken. What you want is good music and not having the same thing played twice, so what you need is an orchestrator, a conductor. We have a language, Hop, that’s able to gather information on the Web very nicely. But on the Web, things keep changing. Sites give you other things, like pictures, scores, bios, etc. HipHop says, "OK, let’s try to make something sensible out of the new information now and then."

So it is similar to Esterel in that it is dealing with changes over time and responding to new inputs or new information?

But with a big difference. The car has a fixed number of wheels. The airplane has a fixed number of wings. On the Web, you never know. We think it’s a very interesting field, mixing completely asynchronous stuff on the Web with a synchronous approach like Esterel. It’s like a dynamic orchestra, with musicians coming in, playing with the others or leaving in the middle of the performance. You need the conductor for those musicians to play together.

The concept of Esterel is still alive and well in your research, then.

This idea that started from a little race car now has many more uses. And that’s what I like about science. A good idea can be much better than a new one.

Back to Top

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More