Meet ApplyKite Twin, the application assistant that learns with you
Meet your Twin, it learns with you
Your Twin learns with you
Launch week codes:30% off annual Pro20% off monthly Pro
Ends in00h00m00s
Ends in00h00m00s
Ben Greenman
Assistant Professor
Research Interests
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
Sam Tobin-Hochstadt
Indiana State University
Shriram Krishnamurthi
Professor
Brown University
Ganesh Gopalakrishnan
Professor
University of Utah
Tim Nelson
Brown University
Make your next move.
Prepare your application
Review drafts before you send them.