Your Twin learns with you

30% off annual Pro20% off monthly Pro

Ends in00h00m00s

Ben Greenman

Assistant Professor

University of Utah
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

Ben Greenman is an Assistant Professor at the University of Utah. His research primarily focuses on programming languages, type systems, and formal methods. Recent articles include work on tools for debugging, teaching formal methods, and navigating type migration. He is dedicated to advancing the understanding of gradual types and typed interactions.

Articles (11)

Year:

2025

This paper presents the design of Forge , a tool for teaching formal methods gradually. Forge is based on the widely-used Alloy language and analysis tool, but contains numerous improvements based on more than a decade of experience teaching Alloy to students. Although our focus has been on the classroom, many of the ideas in Forge likely also apply to training in industry. Forge offers a progression of languages that improve the learning experience by only gradually increasing in expressive power. Forge supports custom visualization of its outputs, enabling the use of widely-understood domain-specific representations. Finally, Forge provides a variety of testing features to ease the transition from programming to formal modeling. We present the motivation for and design of these aspects of Forge, and then provide a substantial evaluation based on multiple years of classroom use.

Year:

2024

Year:

2023

Year:

2023

Year:

2023

Rhombus is a new language that is built on Racket. It offers the same kind of language extensibility as Racket itself, but using traditional (infix) notation. Although Rhombus is far from the first language to support Lisp-style macros without Lisp-style parentheses, Rhombus offers a novel synthesis of macro technology that is practical and expressive. A key element is the use of multiple binding spaces for context-specific sublanguages. For example, expressions and pattern-matching forms can use the same operators with different meanings and without creating conflicts. Context-sensitive bindings, in turn, facilitate a language design that reduces the notational distance between the core language and macro facilities. For example, repetitions can be defined and used in binding and expression contexts generally, which enables a smoother transition from programming to metaprogramming. Finally, since handling static information (such as types) is also a necessary part of growing macros beyond Lisp, Rhombus includes support in its expansion protocol for communicating static information among bindings and expressions. The Rhombus implementation demonstrates that all of these pieces can work together in a coherent and user-friendly language.

Year:

2023

Year:

2023

Year:

2023

Year:

2022

Year:

2022

Year:

2021

Collaborators (5)

Christos Dimoulas

Assistant Professor

Northwestern University

UNITED STATES
View details

Sam Tobin-Hochstadt

Indiana State University

UNITED STATES
View details

Shriram Krishnamurthi

Professor

Brown University

UNITED STATES
View details

Ganesh Gopalakrishnan

Professor

University of Utah

UNITED STATES
View details

Tim Nelson

Brown University

UNITED STATES
View details