jmurmel
interpreter
Our great sponsors
jmurmel | interpreter | |
---|---|---|
9 | 2 | |
20 | 26 | |
- | - | |
9.8 | 0.0 | |
3 days ago | about 3 years ago | |
Java | Java | |
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.
jmurmel
- Show HN: I Made a Lisp
-
format vs. formatter - using and implementing
See also format.lisp for what I have so far. This will also run with sbcl and/ or abcl. If you've made it this far I'd also appreciate feedback on whether my chosen subset (see the comment at the top of the file) of Common-Lisp's format is somewhat useful and/ or which features you would miss the most.
-
Murmel 1.4.1
JMurmel also has commandline flags to turn off language features for experimentation purposes, see e.g. implementing cons, car and cdr in Lambda Calculus.
-
Java OSS with the WORST code quality you’ve ever seen?
To my defense, I have started my Lisp compiler/ interpreter mostly for recreational purposes to do the exact opposite of what the checkstyle nazis at my $job demand.
-
-🎄- 2022 Day 10 Solutions -🎄-
Murmel:
-
-🎄- 2022 Day 1 Solutions -🎄-
I may be a little late to the party but here's my Murmel solution:
-
I made a Lisp
Code is on Github, the latest release with a precompiled jar is at Release V 1.3.
-
Would welcome feedback on Murmel 1.0
Re: automated tests; there are JUnit tests in https://github.com/mayerrobert/jmurmel/tree/master/lambda/src/test/java, and the files in https://github.com/mayerrobert/jmurmel/tree/master/lambda/src/test/lisp are run automatically, too, and their output and result is checked. Maybe I should add a file HACKING.md or something that gives an intro of the project structure and build system?
interpreter
-
Implementing a Call Stack
Here you go: https://github.com/bamless/interpreter. Look at the interpret/memenv package. The implementation really couldn't be more simple: it is just a queue of frame objects. pushStackFrame is called when calling a function, and popStackFrame when hitting a return or a function end. The MemoryEnvironment is instantiated by the interpreter visitor so all parts of it have access to the memory. The variables themselves are kept in an hashmap inside each Frame. Not the most efficient way but fast enough for a tree walking interpreter
-
Is there a FULL guide about creating a statically typed bytecode interpreter in C/C++?
https://github.com/bamless/interpreter/tree/master.
What are some alternatives?
aviatorscript - A high performance scripting language hosted on the JVM.
jstar - A lightweight embeddable scripting language
OpenJ9 - Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
sof-language - The Stack with Objects and Functions Programming Language, a pure stack-based reverse-polish-notation functional and object-oriented experimental programming language.
jisp - Small Lisp expression interpreter made in Java
chapel - a Productive Parallel Programming Language
JEvalExpr - Extensible Java Library and Tool to parse, interpret, compile and execute commands written in a language SQL Like.
Nuua - The Nuua Programming Language - A zero dependencies, high level strong typed, interpreted language built on the top of modern C++17.
lang - This project provides a CLI and GUI interface to the Standard Lang implementation of the Lang Programming Language
Crafting Interpreters - Repository for the book "Crafting Interpreters"