1. 5

The app is still pretty ugly, but hope this can shed some light on where it’s going.

Feedback/Roasts welcomed!

  1.  

  2. 4

    I think you did a great job; this video helped me a lot in understanding what your Tree Language is about. It is an alternative to lex/yacc/antlr/menhir, except it can also generate other tools for the language being defined (for example, an autocompletion tool).

    Do you know about the K framework? K seems pretty similar to your Tree Language: you define a grammar and semantics and you can automatically get a compiler, static analyzers and other tools. I think K’s advantage over your Tree Language is that K lets you define the language’s semantics. However, this means that K doesn’t have a syntax as uniform as your Tree language. Are there other differences?

    Edit: I think it would also be cool if you implemented a “real” language in Tree. For example, I think lua’s syntax is rather minimal and could be a good example to show what Tree is about.

    1. 2

      this video helped me a lot in understanding what your Tree Language is about.

      Awesome! Thanks for the feedback.

      Do you know about the K framework?

      I actually don’t think I’ve seen K Framework before, thanks for sharing. I must have missed the amongst the other K languages (a pet peeve is 1 letter language names :) ). I watched the video, very interesting. Probably a lot of good ideas here we can take inspiration from. Thanks again.

      However, this means that K doesn’t have a syntax as uniform as your Tree language. Are there other differences?

      So all Tree Notation is is a syntax. That’s it. The idea of having a simple system using whitespace/positioning/geometry to represent trees. And then the claim that you could build any Tree Language on top of that, and you could do anything that a BNF language could do without adding any new syntax primitives, that’s the whole novel part of this idea.

      The Tree Grammar Language, which is more closely related to lex/yacc/antlr/K framework, is just one implementation/proof of concept of this idea. When thinking about what language would best demonstrate the ideas of Tree Notation, the first one that comes to mind is to build a language for building languages. Implementing a lisp would be one approach, but I like to rethink things from first principles on occasion.

      So other than the syntax, all the other ideas in the Tree Grammar Language I take from other places. It’s basically a recursive descent parser. And borrows heavily from the YACCs and ANTLRs and Rackets and Haskells and Lisps of the world. So there’s Tree Notation and then Tree Languages. Grammar happens to be one Tree Language for making other Tree Languages, but it’s just one implementation, and perhaps there could be better ways to do it. I hope that makes sense. Not sure if I’m explaining that well. Or even if I fully understand it myself ;).

      I think it would also be cool if you implemented a “real” language in Tree. For example, I think lua’s syntax is rather minimal and could be a good example to show what Tree is about.

      I agree! This was actually a top priority in 2017. However, what became apparent is that without tooling designed for Tree Languages, it’s not that fun and is worse to use a tree language than a bnf language that has good editor tooling. So the path now is more of tacking to get there, building the tooling up first and smaller DSLs. If anyone attempts to make a good general purpose language sooner rather than later, happy to help and prioritize feature development when you hit roadblocks. I’ve got a few in development, but nothing impending release.