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

AstonJ
Another BEAM language… The Hamler Programming Language Hamler is a strongly-typed language with compile-time typechecking and built-in...
New
First poster: bot
Node.js v12.22.0 has been released. Link: Release 2021-03-30, Version 12.22.0 'Erbium' (LTS), @richardlau · nodejs/node · GitHub
New
First poster: bot
Scala v2.13.6 has been released. Link: Release Scala 2.13.6 · scala/scala · GitHub
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: bot
Kotlin v1.6.10 has been released. Link: Release Kotlin 1.6.10 · JetBrains/kotlin · GitHub
New
First poster: dimitarvp
V weekly.2022.06 has been released. Link: Release weekly.2022.06 · vlang/v · GitHub
New
First poster: bot
Laravel v10.0.5 has been released. Link: Release v10.0.5 · laravel/laravel · GitHub
New
First poster: bot
Node.js v18.16.0 has been released. Link: Release 2023-04-12, Version 18.16.0 'Hydrogen' (LTS), @danielleadams · nodejs/node · GitHub
New
NewsBot
A new R blog post/announcement has been posted! Get the full details here: R on 64-bit ARM Windows - The R Blog
New
First poster: KnowledgeIsPower
A new Python blog post/announcement has been posted! Get the full details here: Python Insider: Python 3.14.0rc2 and 3.13.7 are go!
New

Other popular topics Top

PragmaticBookshelf
Design and develop sophisticated 2D games that are as much fun to make as they are to play. From particle effects and pathfinding to soci...
New
Rainer
My first contact with Erlang was about 2 years ago when I used RabbitMQ, which is written in Erlang, for my job. This made me curious and...
New
AstonJ
There’s a whole world of custom keycaps out there that I didn’t know existed! Check out all of our Keycaps threads here: https://forum....
New
New
AstonJ
This looks like a stunning keycap set :orange_heart: A LEGENDARY KEYBOARD LIVES ON When you bought an Apple Macintosh computer in the e...
New
PragmaticBookshelf
Author Spotlight Rebecca Skinner @RebeccaSkinner Welcome to our latest author spotlight, where we sit down with Rebecca Skinner, auth...
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
PragmaticBookshelf
Explore the power of Ash Framework by modeling and building the domain for a real-world web application. Rebecca Le @sevenseacat and ...
New
PragmaticBookshelf
Fight complexity and reclaim the original spirit of agility by learning to simplify how you develop software. The result: a more humane a...
New
CommunityNews
Open-source implementation of the classic GTA engine now running directly in your browser. Experience the reVC technology demo on DOS.Zon...
New