Your Twin learns with you

30% off annual Pro20% off monthly Pro

Ends in00h00m00s

John Reppy

Professor

University of Chicago
Country flagUnited States

Research Interests

ApplyKite TwinLearns as you apply

Make your next move.

Prepare your application

Review drafts before you send them.

Explore related searches

About

John Reppy is a Professor at the University of Chicago, United States. His research areas include higher-order languages, program transformations, and the history of programming languages, particularly Standard ML. He has authored recent articles on topics such as environment-sharing analysis, flow-directed program transformations, and binding extent analysis in 3CPS.

Articles (4)

Year:

2025

Year:

2025

To date, the most effective approach to compiling strict, higher-order functional languages (such as OCaml, Scheme, and SML) has been to use whole-program techniques to convert the program to a first-order monomorphic representation that can be optimized using traditional compilation techniques. This approach, popularized by MLton, has limitations, however. We are interested in exploring a different approach to compiling such languages, one that preserves the higher-order and polymorphic character of the program throughout optimization. To enable such an approach, we must have effective analyses that both provide precise information about higher-order programs and that scale to larger units of compilation. This paper describes one such analysis for determining the extent of variable bindings. We classify the extent of variables as either register (only one binding instance can be live at any time), stack (the lifetimes of binding instances obey a LIFO order), or heap (binding lifetimes are arbitrary). These extents naturally connect variables to the machine resources required to represent them. We believe that precise information about binding extents will enable efficient management of environments, which is a key problem in the efficient compilation of higher-order programs. At the core of the paper is the 3CPS intermediate representation, which is a factored CPS-based intermediate representation (IR) that statically marks variables to indicate their binding extent. We formally specify the management of this binding structure by means of a small-step operational semantics and define a static analysis that determines the extents of the variables in a program. We evaluate our analysis using a standard suite of SML benchmark programs. Our implementation gets surprisingly high yield and exhibits scalable performance. While this paper uses a CPS-based IR, the algorithm and results are easily transferable to other λ-calculus IRs, such as ANF.

Year:

2022

Year:

2020

Collaborators (2)

David Van Horn

Assistant Professor

University of Maryland

UNITED STATES
View details

Olin Shivers

Northeastern University

UNITED STATES
View details