Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I really liked what was done in STEPS project. I learned a lot from their repors. For example, this Ian Piumarta's paper is absolutely beautiful [1]. I also spent a lot of time learning oMeta [3] system by Alessandro Warth.

And, honestly, now I see nothing really new in Ohm. Basically, it's just some tweaking of the same tech. Moreover, Ohm was made for isolated parsing task. For me it's a step back. My point is that the parsing alone is not very interesting thing, for making DSLs you need to have other tools too. In the Ian Piumarta's paper we had a minimalistic program transformation system [2]. Remember original META II [4]? It was a compiler-compiler (metacompiler), not just a parser generator. I'm really curious to know why the authors decided this time to limit themselves by only parsing.

[1] http://www.vpri.org/pdf/tr2010003_PEG.pdf

[2] https://en.wikipedia.org/wiki/List_of_program_transformation...

[3] http://www.vpri.org/pdf/tr2008003_experimenting.pdf

[4] http://www.ibm-1401.info/Meta-II-schorre.pdf



Ohm is not really "just" a parser generator -- but that's the easiest way to describe it.

The big idea in Ohm is its modular semantic actions. You can read more about the design -- and why we think it's interesting -- in our DLS paper: https://ohmlang.github.io/pubs/dls2016/modular-semantic-acti...


Thank you for the answer!

I understand that separation of the grammar and semantics has its benefits. You can use the same grammar description with different semantic rules sets etc. It's, indeed, a clean and interesting approach.

But, as I understand, Ohm still has no support for context-sensitive grammars, which is more important to have in many cases, than proper left recursion handling.

And oMeta had another nice feature: meta-rules (higher-order rules) which is absent in Ohm, if I understand correctly.

Ohm tries to be very user-friendly, but at the price of droping the functionality. So in this case Ohm is not a modern replacement for oMeta (which had the AST transforming features -- very important for making compilers!).

I'm not trying to be negative and I really wish a big success to your team!


> But, as I understand, Ohm still has no support for context-sensitive grammars, which is more important to have in many cases, than proper left recursion handling.

Right, we don't support context-sensitive grammars yet. But we'd like to -- we're just trying to figure out how to do it in a way that fits Ohm's design principles. I'm optimistic that we'll be able to do that.


It struck me as mostly the point of Ohm. Bring the ideas behind the various OMetas into an environment we can actually use it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: