ohm
nile
Our great sponsors
ohm | nile | |
---|---|---|
10 | 3 | |
4,877 | 711 | |
1.0% | - | |
6.8 | 0.0 | |
29 days ago | almost 4 years ago | |
JavaScript | Common Lisp | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ohm
-
Ohm: A library and language for building parsers, interpreters, compilers, etc.
Building an interpreter or a compiler from a grammar is an interesting idea. I can't immediately see how to go about it - the grammar would need to match on SSA or similar.
The examples have a lisp-like interpreter at https://github.com/ohmjs/ohm/blob/main/examples/simple-lisp/... which definitely uses a grammar for parsing and might use a generic AST representation.
Will have to think more - a grammar might be a worthwhile way to specify a nanopass style compiler pipeline.
-
Is there a generalised, abstract programming language, designed to be specialised to a specific domain?
Look for OMeta and its successor Ohm.
-
[AskJS] Why does our community hate Operator Overloading?
One more suggestion: Maybe create your own scripting-language using Ohm? The project works in JavaScript, so whatever you created would sit on top of your existing APIs.
-
A different / new way to write compilers?
OMeta and its successor ohm might provide some interesting ideas.
-
Ohm – A library and language for building parsers, interpreters, compilers, etc.
Always fun to find the first commit:
https://github.com/harc/ohm/commit/4611bf63c5ecb90d782112d68...
2014
Neat tool. I write parsers by hand though. More fun, and you can be a lot sleazier.
nile
-
Alan Kay's talk at UCLA – Feb 21, 2024 [video]
>you may or may not be aware that when he headed vpri, they did some substantial research into some of the other important ways to organize software, including things like array languages, david p. reed's work on spatially replicated computation, and cooperating communities of specialized solvers.
I'm very interested in knowing what array languages they were researching. The only thing I can find is Nile[1] but from the examples it doesn't look like an array language to me.
[1] https://github.com/damelang/nile
-
What are some simple but powerful compile-to-JS languages I might not know about, or that you are working on (not Elm, Reason, PureScript, or ClojureScript)?
Again, "compile-to-JS" is too broad of a term. It is very difficult to understand what you are looking for. You can have everything in there from languages that just add little bits to JS like TypeScript & CoffeeScript all the way to research languages like Nile and extremely powerful languages like ATS or Rust.
-
Ohm – A library and language for building parsers, interpreters, compilers, etc.
Can you link to both the Maru community and the reborn Nile work? I've always tried to follow the latter, but [1] seems to be the only place to find information and it's been silent for a long time.
[1] https://github.com/damelang/nile/issues/3
What are some alternatives?
PEG.js - PEG.js: Parser generator for JavaScript
cubiml-demo - A simple ML-like programming language with subtyping and full type inference.
peggy - Peggy: Parser generator for JavaScript
Pegged - A Parsing Expression Grammar (PEG) module, using the D programming language.
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
usfm-grammar - An elegant USFM parser.
Chevrotain - Parser Building Toolkit for JavaScript
meowlang - Meow Programming Language
pymetaterp - A python parser that builds python ASTs in 502 lines of python without using modules
proposal-operator-overloading