Skip to content
0:00 / 0:00

#hazel#typedholes#structuredediting

"Hazel: A Live Functional Programming Environment with Typed Holes" by Cyrus Omar

Strange Loop Conference

88K subscribers • 107 videos on Hallway • Conference channel

YouTube
  • Recommended by 2 people: 1 on Lobsters and 1 in engineering communities.
  • Presented by Cyrus Omar

Intermediate. Assumes working knowledge.

7.7K views8 years ago2 recommendations

Programming languagesSoftware designFunctional programmingLanguage design and type systemsVim, Emacs and editors

Cyrus Omar explains Hazel, a live functional programming environment that uses typed holes to assign formal meaning to incomplete programs.

When programming, we spend a substantial amount of our time working on programs that are not yet complete. For example, there can be blank spots, type errors or merge conflicts at various locations in the program. Conventional programming language definitions assign no formal meaning to these incomplete programs, so development tools can at best resort to ad hoc heuristics to provide various useful language services without interruption, including code completion, type inspection, code navigation, and live debugging. We are working to develop a more principled approach to working with incomplete programs, rooted in the first principles of type theory. We model incomplete programs as programs with holes, which (1) stand for parts of the program that are missing; and (2) serve as membranes around parts of the program that are erroneous or conflicted. We are incorporating this approach into Hazel (hazel.org), a web-based live programming environment for an Elm-like functional language designed from the ground up to support typed hole-driven development. Uniquely, Hazel inserts holes automatically to ensure that every editor state has both static meaning (so we can provide type-based services, like type inspection, without interruption) and dynamic meaning (so we can provide run-time services, like Hazel's novel live debugger, without interruption). We are currently using Hazel to develop interactive course material that introduces functional programming. Cyrus Omar

Why it's here

2 people recommend this

What people say. Recommended as an innovative structured editor and live programming environment.

u/DependentlyHypedin r/ProgrammingLanguages • Recommends

On “As a Vim enthusiast, had an idea for a language...”

There are some pretty cool structured editors I’ve seen recently. Still very earlier stage, but I’d recommend looking at Hazel.

nickpsecurityon Lobsters • Recommends

Hazel: A Live, Functional Programming Language with Typed Holes Website.