In recog­ni­tion of the impact his work has had on the field, com­puter sci­ence pro­fessor Matthias Felleisen received the 2012 Achieve­ment Award from SIGPLAN, the Asso­ci­a­tion for Com­puting Machinery’s spe­cial interest group on pro­gram­ming languages.

When a com­puter sci­en­tist cre­ates a new pro­gram­ming lan­guage, he’s doing exactly that: cre­ating a new lan­guage. People invent new lan­guages, Felleisen explained, “because it’s a lot easier to express knowl­edge in your own lan­guage instead of trans­lating into a low-​​level pro­gram­ming language.”

In the mid-​​1990s, that con­cept inspired Felleisen to develop a lan­guage called PLT Scheme, which he later renamed Racket. It allows pro­gram­mers to turn familiar vocab­u­lary into a pro­gram­ming lan­guage — for instance, a pro­gram designed to solve physics prob­lems would use the actual math­e­mat­ical lan­guage of physics.

What we achieve,” said Felleisen, “is pro­gram­mers can think at a much higher level about the problem.”

After vis­iting a high school pro­gram­ming class in Houston, Felleisen real­ized that such a tool could also be useful for teaching both com­puter pro­gram­ming and math­e­matics, since it didn’t require learning a third, abstract language.

There was a girl who had written down a per­fect solu­tion for an algebra problem,” he said. “But in C++ you have to write it the other way around. She could not com­pre­hend that and she started crying. That girl hated com­puters from that point on — it’s obvious why.”

Orig­i­nally devel­oped as a research tool, Racket is now used as both an edu­ca­tional plat­form and an actual pro­gram­ming lan­guage found in a variety of real-​​world, com­pu­ta­tional settings.

Felleissen said the over­ar­ching goal of his work is to develop better tools for better soft­ware. Racket is one such tool. Another tool devel­oped in Felleisen’s lab, which has become per­va­sive in the pro­gram­ming world, is a kind of ref­eree system that helps pro­gram­mers find the source of errors.

It spec­i­fies what a soft­ware com­po­nent promises to do for you and what it expects from you in return,” said Felleisen. The ref­eree checks whether or not it actu­ally hap­pens. As he put it, “It can pin­point exactly where some com­po­nent broke its promise.”

Felleisen also received SIGPLAN’s Most Influ­en­tial Paper award for his 2002 paper on the ref­eree system, which rec­og­nizes a paper’s influ­ence in the decade after its publication.

Essen­tially acting as a fact checker, the ref­eree system (offi­cially called a soft­ware con­tract) is a key step in devel­oping a sound pro­gram­ming lan­guage, according to Felleisen.

His edu­ca­tional pro­grams, which have been imple­mented in schools and uni­ver­si­ties across the globe, follow six steps from defining the problem to checking the work. The approach is based on math­e­mat­ical problem-​​solving pro­ce­dures, he said, but people have used it to develop every­thing from pro­gram­ming lan­guages to poetry.