CommunityNews

CommunityNews

Ohm – A library and language for building parsers, interpreters, compilers, etc

Ohm is a parsing toolkit consisting of a library and a domain-specific language. You can use it to parse custom file formats or quickly build parsers, interpreters, and compilers for programming languages.

The Ohm language is based on parsing expression grammars (PEGs), which are a formal way of describing syntax, similar to regular expressions and context-free grammars. The Ohm library provides a JavaScript interface for creating parsers, interpreters, and more from the grammars you write.

  • Full support for left-recursive rules means that you can define left-associative operators in a natural way.
  • Object-oriented grammar extension makes it easy to extend an existing language with new syntax.
  • Modular semantic actions. Unlike many similar tools, Ohm completely separates grammars from semantic actions. This separation improves modularity and extensibility, and makes both grammars and semantic actions easier to read and understand.
  • Online editor and visualizer. The Ohm Editor provides instant feedback and an interactive visualization that makes the entire execution of the parser visible and tangible. It’ll make you feel like you have superpowers. :muscle:

Some awesome things people have built using Ohm:

  • Seymour, a live programming environment for the classroom.
  • Chorus, a project exploring the middle ground between spreadsheets and programming.
  • Shadama, a particle simulation language designed for high-school science.
  • turtle.audio, an audio environment where simple text commands generate lines that can play music.
  • A browser-based tool that turns written Konnakkol (a South Indian vocal percussion art) into audio.
  • Wildcard, a browser extension that empowers anyone to modify websites to meet their own specific needs, uses Ohm for its spreadsheet formulas…

This thread was posted by one of our members via one of our news source trackers.

Most Liked

AstonJ

AstonJ

@ohm - saw this and wondered whether it was you behind it :laughing:

ohm

ohm

Ha! Unfortunately, no. I think it would have been a bit vain as well :rofl:

AstonJ

AstonJ

It’s a cool name tho Ohm! :sunglasses:

I remember that when I first came across your username I immediately thought of electricity :electric_plug: :robot:

Where Next?

Popular Backend topics Top

First poster: bot
A new Lunatic blog post/announcement has been posted! Get the full details here: https://lunatic.solutions/lunatic-chat/
New
First poster: AstonJ
A new Crystal blog post/announcement has been posted! Get the full details here: Crystal 1.0 - What to expect - The Crystal Programming...
New
NewsBot
Node.js v14.17.6 and v12.22.6 has been released. Link: Release 2021-08-31, Version 14.17.6 'Fermium' (LTS), @MylesBorins · nodejs/node ...
New
First poster: OvermindDL1
A new Lunatic blog post/announcement has been posted! Get the full details here: https://lunatic.solutions/writing-rust-the-elixir-way/
New
First poster: bot
Node.js v14.18.2 has been released. Link: Release 2021-11-30, Version 14.18.2 'Fermium' (LTS), @richardlau · nodejs/node · GitHub
New
NewsBot
A new Python blog post/announcement has been posted! Get the full details here: Python Insider: Python 3.14.0a7, 3.13.3, 3.12.10, 3.11....
New
First poster: AstonJ
A new Python blog post/announcement has been posted! Get the full details here: Python Insider: Python 3.13.5 is now available!
New
NewsBot
A new Rust blog post/announcement has been posted! Get the full details here: Announcing Rust 1.89.0 | Rust Blog
New
New
NewsBot
Node.js v25.2.0 and v24.11.1 has been released. Link: Release 2025-11-11, Version 25.2.0 (Current), @aduh95 · nodejs/node · GitHub Li...
New

Other popular topics Top

AstonJ
Curious to know which languages and frameworks you’re all thinking about learning next :upside_down_face: Perhaps if there’s enough peop...
New
AstonJ
Just done a fresh install of macOS Big Sur and on installing Erlang I am getting: asdf install erlang 23.1.2 Configure failed. checking ...
New
DevotionGeo
The V Programming Language Simple language for building maintainable programs V is already mentioned couple of times in the forum, but I...
New
AstonJ
Continuing the discussion from Thinking about learning Crystal, let’s discuss - I was wondering which languages don’t GC - maybe we can c...
New
Margaret
Hello everyone! This thread is to tell you about what authors from The Pragmatic Bookshelf are writing on Medium.
1147 29994 760
New
mafinar
This is going to be a long an frequently posted thread. While talking to a friend of mine who has taken data structure and algorithm cou...
New
PragmaticBookshelf
Build efficient applications that exploit the unique benefits of a pure functional language, learning from an engineer who uses Haskell t...
New
AnfaengerAlex
Hello, I’m a beginner in Android development and I’m facing an issue with my project setup. In my build.gradle.kts file, I have the foll...
New
NewsBot
Node.js v22.14.0 has been released. Link: Release 2025-02-11, Version 22.14.0 'Jod' (LTS), @aduh95 · nodejs/node · GitHub
New
mindriot
Ok, well here are some thoughts and opinions on some of the ergonomic keyboards I have, I guess like mini review of each that I use enoug...
New