hexpr: A framework for symbolic, homoiconic languages.
H-expressions are a variant of S-expressions. Where s-expressions are atoms or nodes grouped into lists of length at least one, h-expressions, or hexprs, are grouped into lists of length two. This may seem very trivial, but this restriction makes it possible to treat parenthesis in the concrete syntax of hexprs merely as a manual override to the basic precedence rules, just as in mathematics. In particular, a suitable hexpr interpreter is capable of understanding eta-converted terms, which is quite unrealistic, if not impossible in an sexpr-based syntax. Thankfully, hexprs retain all the advantages of sexprs with respect to homoiconic syntax. Hexprs on their own are fairly unhelpful, so we also have also included a configurable hexpr parser based on parsec. I wasn't long before mission creep set in, and a series of tools were produced to aid in creating a frontend for hexpr-based languages. See the package 'hexpr-examples' for some examples of the framework in action. I think H could stand for many things: the greek letter eta, hierarchical, happy, next in the alphabet after f, or perhaps hexpr == hexpr-expression. Where it comes from is unimportant, what is important is that we can easily the next generation of homoiconic languages.
Modules
[Index]
Downloads
- hexpr-0.0.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.0.0.0 |
---|---|
Dependencies | base (>=4.6 && <4.7), data-ref, either (>=4.1 && <4.2), mtl (>=2.1 && <2.2), parsec (>=3.1 && <3.2), transformers (>=0.3 && <0.4) [details] |
License | BSD-3-Clause |
Author | Zankoku Okuno |
Maintainer | zankoku.okuno@gmail.com |
Category | Language |
Home page | https://github.com/Zankoku-Okuno/hexpr/ |
Uploaded | by ZankokuOkuno at 2014-04-03T18:24:27Z |
Distributions | |
Reverse Dependencies | 2 direct, 0 indirect [details] |
Downloads | 1145 total (2 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Successful builds reported [all 1 reports] |