Researchers Receive OOPSLA Distinguished Artifact Award

Writer(s): Kristyn Childres

Purdue researchers received a Distinguished Artifact Award at the ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016), held in November in Amsterdam. 

Ph.D. students Leo Osvald, Gregory Essertel, Xilun Wu and Lilliam I. Gonzalez Alayon received the award with Assistant Professor Tiark Rompf for their paper Gentrification Gone too Far? Affordable 2nd-Class Values for Fun and (Co-)Effect. Only three of 28 accepted artifacts received this distinction. There were more than 200 initial submissions.

Modern programming languages offer much greater expressiveness than their ancestors from the 1960s and ’70s. Many of the advancements that directly translate to programmer productivity are the result of removing restrictions on how certain entities can be used, and granting “first-class” status to more and more language constructs. A language construct is said to be first-class when there are no restrictions on its use. First-class constructs can be stored in variables, passed as arguments to functions, created within functions and returned from functions. 

First-class functions dramatically increase expressiveness at the expense of static guarantees. In ALGOL or PASCAL, functions could be passed as arguments but never escape their defining scope. They could serve as temporary access tokens or capabilities, enabling callees to perform some action, but only for the duration of the call. In modern languages, such programming patterns are no longer available – a process, according to researchers, that is not unlike gentrification in urban development.

This paper studies the interplay of modern first-class values with second-class values, finding that second-class values can provide important and practically relevant static guarantees. Researchers reintroduce second-class functions and other values alongside first-class entities in modern languages, demonstrating that this combination leads to novel and elegant implementation techniques. Learn more.