jevkalk
nederlang
jevkalk | nederlang | |
---|---|---|
4 | 4 | |
4 | 29 | |
- | - | |
9.1 | 10.0 | |
8 months ago | over 1 year ago | |
JavaScript | Rust | |
- | GNU General Public License v3.0 only |
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.
jevkalk
-
November 2022 monthly "What are you working on?" thread
[1] Here's one of my tries: https://github.com/jevko/jevkalk
-
Jevko: a minimal general-purpose syntax
Here is a toy language that uses Jevko as syntax that I've been hacking on a bit recently: https://github.com/jevko/jevkalk
> is doing? It sure looks to me like it's asking whether a symbol (i.e. indivisible atom) ends with an equal sign, which is semantic gibberish.
There are no symbols or indivisible atoms here.
What's happening here is parsing. `jevkoToHtml` is a kind of parser-transpiler which operates on a syntax tree, rather than a sequence of characters or tokens.
The syntax tree is the output of an earlier stage of parsing, done by the Jevko parser.
So you can think of this as multi-pass parsing, by analogy with multi-pass compilation.
At the same time as this second pass of parsing is happening, translation to HTML is happening as well.
Hope this clarifies things!
---
[0] To clearly see the point, here is a toy programming language which uses Jevko as its syntax: https://github.com/jevko/jevkalk
nederlang
-
What's everyone working on this week (47/2022)?
Writing a blog post on my experience rewriting a toy interpreter in Rust and what it took to make it faster than the one I wrote in C.
-
Resources on implementing a LISP-like language interpreter?
Closures will probably remain hairy though. It’s a tough problem to solve. I’ve yet to take the plunge (supporting closures, that is) for my toy language Nederlang but maybe the other parts of it can be of help. It’s no longer a tree-walking implementation though.
-
Emitting block as expression to a stack vm
The way I solved this in Nederlang is to create a hole in the stack for the maximum amount of local variables the compiler encountered for each block statement.
-
November 2022 monthly "What are you working on?" thread
Have been working on Nederlang for the last few weeks again. My last (and first!) attempt at an interpreted programming language was in C but it wasn't that pleasant to work in. I'm now using Rust and am pretty happy with it so far. Performance is great (using tagged pointers and some nice optimizations using specialized opcodes for common operations, like operating on a constant and a variable, bypassing the stack), it's a joy to work in and exotic segfaults are a thing of the past.
What are some alternatives?
easyjevko.lua - An Easy Jevko library for Lua.
pythonvm-rust - An incomplete stackless interpreter of Python bytecode, written in Rust.
edsl - Example of embedding TypeScript as an EDSL inside of another language
utena
jevkostream.scm - (WIP) Streaming parsers for Jevko in Scheme
parsejevko.js - [DEPRECATED] Deprecated in favor of https://github.com/jevko/jevko.js
community - Features Jevko-related things created by various authors
uvm - Fun, portable, minimalistic virtual machine.
binary-experiments - Experiments with various binary formats based on Jevko.
interjevko.js - Experimental Schema-based Minimal Data Interchange with Jevko.
Glide - Glide programming language