GGrantIndex
← Search

CRI: CI-SUSTAIN: Racket on Alternative Platforms

$999,382FY2018CSENSF

Northeastern University, Boston MA

Investigators

Abstract

For two decades, the Racket programming language has served as a test bed for research on language design and implementation as well as a platform for teaching courses on computer science from middle school through graduate school. Researchers use it to explore new language ideas because of its flexibility, ranging from new ways of communicating between web servers and web browsers to the construction of entirely new languages. Educators introduce middle school students to algebra in a novice-friendly dialect of the language and professors introduce PhD students to the study of the meaning of languages. Racket is also used in industry for a range of products. Now programmers request a faster Racket and a Racket that runs on modern platforms such as phones, tablets, and web browsers. To accommodate these requests, the project will work on four different, but related efforts. First, an optimizing just-in-time compiler will be developed, based on the recently developed PyPy framework. Second, Racket's innovations will be ported to Cisco's high-performance Chez Scheme implementation, which is now available as an open-source project on GitHub. This effort simultaneously constructs another performant compiler and returns to the Scheme community some of the innovations that the Racket community has developed over the last decade. In short, the first two projects directly address the performance requests from the Racket community. Third, the project will design a variant of Racket for web browsers, a radically different platform from ordinary computers. The plan is to construct a compiler from Racket to JavaScript. Fourth, Racket needs a GUI framework for mobile platforms (phones, tablets) to become a fully functional language on those devices. All four efforts have a direct impact on research and education. Modern software must run on, and communicate across, heterogenous collections of platforms and hardware (servers, laptops, tables, phones, browsers). To solve the problem of engineering reliable, safe, and secure software, researchers need programming languages in which they can explore the problems. From languages such as Racket, these ideas tend to quickly flow into industrial applications and thus improve the lives of everyone. Modern education must empower children in the world of software; otherwise they are not broadly educated. For 20 years, Racket has played an important role at hundreds of universities, colleges, and K-12 schools. Providing it on alternative platforms will ensure the future needs of instructors. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

View original record on NSF Award Search →