Software

We design, implement, and maintain software systems.

The Racket language is a vehicle for most of our research and teaching.


Racket is a full-spectrum programming language. It goes beyond Lisp and Scheme with dialects that support objects, types, laziness, and more. Racket enables programmers to link components written in different dialects, and it empowers programmers to create new, project-specific dialects. Racket's libraries support applications from web servers and databases to GUIs and charts.

The Fiji real-time JVM and Fiji C1 compiler run on on a broad range of HW/OS (ARM and ERC32 to PowerPC and x86/x86_64, from RTEMS to Linux or Darwin), execute Java with deterministic garbage collection, or safe GC-less allocation.

This project intends to analyze the dynamic behavior of JavaScript programs and its implications on analyses and security.

Tools related to the R programming language including the Purdue implementation of the FastR virtual machine, timeR, testR and benchR.

Larceny is an implementation of the Scheme programming language written by Will Clinger and his students.