planckforth
factor
planckforth | factor | |
---|---|---|
12 | 59 | |
271 | 1,585 | |
- | 0.8% | |
0.0 | 9.8 | |
over 1 year ago | 1 day ago | |
Forth | Factor | |
MIT License | BSD 2-clause "Simplified" 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.
planckforth
-
Forth as an intermediate language
This reminds me a bit of how planck is implemented with planckforth. I can't tell you if there are pitfalls or not, but I can understand how it could be an interesting approach.
- PlanckForth - Bootstrapping a Forth interpreter from hand-written tiny ELF binary. Just for fun.
-
Hacker News top posts: Dec 6, 2021
Show HN: PlanckForth – Bootstrapping an interpreter from handwritten 1kb binary\ (14 comments)
-
Show HN: PlanckForth: Bootstrapping an Interpreter from Handwritten 1KB Binary
bootstrap.fs is a thing of beauty
https://github.com/nineties/planckforth/blob/main/bootstrap....
It starts off looking like line noise (the very simple interpreter defined in hex) and gradually turns into the forth we know and love.
Fantastic!
-
Bootstrapping a Forth Interpreter from Handwritten 1KB Binary
interpreter is designed to be very simple. Every built-in word is single-letter and the interpreter just repeats that reads a character, looks it up from the dictionary and executes it. Also there is no error checking.
This is the actual code for the first interpreter, which is a 136-byte implementation of the interpreter followed by a built-in dictionary of 888 bytes.
https://github.com/nineties/planckforth/blob/main/planck.xxd
The first interpreter and language is so esoteric that, for example, the Hello World looks like this.
$ ./planck
- PlanckForth: Bootstrapping an Interpreter from Handwritten 1KB Binary
-
Fitting a FORTH in 512 bytes
Seems painful. I like this approach:
https://github.com/nineties/planckforth
You start with a very tiny address or bytecode interpreter, much smaller than 512 bytes. Then you load several levels of bootstrap interpreters into it until you have a fairly featureful Forth. So that occupies ram but not program space on the target computer. You would load the non-initial stuff from a remote computer that didn't have tiny memory constraints.
- Bootstrapping an Interpreter from Handwritten 1KB Binary
factor
- An Exploration of SBCL Internals (2020)
-
My history with Forth, and stack machines
My impression so far is (in general), Forth are practically limited to doing embedded/microcontroller development.
For us, web/mobile/desktop app devs, beside:
- 8th (https://8th-dev.com)
- Factor (https://factorcode.org)
Any suggestion which implementation we should look for?
- Forth: The programming language that writes itself: The Web Page
- Retro: A Modern, Pragmatic Forth
-
Pharo 11, the pure object-oriented language and environment is released!
Factor is also very much worth a look. Forth-style syntax, but with many of the ideas from CL and Smalltalk as well. In fact as a CL fan, I was very impressed by it. It's also quite "batteries included" a la Python.
-
The toki pona of programming.
Otherwise, and more seriously, I'm not completely sure variables are needed. Factor is quite usable (it's my favorite go-to language if I quickly need to script something), and mostly doesn't have them.
- Forth as an intermediate language
-
A Dynamic Forth Compiler for WebAssembly
There's a note on the page from 2022-08-19, that a lot has been added to it. It also links to the github page[1] for the up-to-date changes.
I am a Lisp, April, APL/J/BQE, and Forth[2] aficionado. I did some file munging programs in Factor back in 2012 at my job to sort through theater attendance logs in Word to compile statistics.
[1] https://github.com/remko/waforth
[2] https://factorcode.org/
-
What the hell is Forth? (2019)
Is there any "battery-included" ANS Forth (more or less like Python/Go) which provides access to concurrency, networking, database, GUI, etc?
Not an embedded device programmer, but mostly deals with frontend apps, and occasionally backend, so those are very relevant to me.
Or perhaps use "non-traditional" Forths like 8th (https://8th-dev.com) or Factor (https://factorcode.org)?
-
-🎄- 2022 Day 2 Solutions -🎄-
Here's my day two solution using Factor
What are some alternatives?
miniforth - A bootsector FORTH
jonesforth - Mirror of JONESFORTH
Transformer-in-Transformer - An Implementation of Transformer in Transformer in TensorFlow for image classification, attention inside local patches
durexforth - Modern C64 Forth
cycle-cloud - Repository to allow collaboration between Cycle Labs Cloud community in support of the community.
bondi - source code for the bondi programming language
planck - This project aims to develop a Compiler Infrastructure which have advanced memory safety and concurrency features.
Raylib-CsLo - autogen bindings to Raylib 4.x and convenience wrappers on top. Requires use of `unsafe`
principia - The Principia Rewrite
oil - Oils is our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!
batteries-included - Batteries Included project
pirsch - Pirsch is a drop-in, server-side, no-cookie, and privacy-focused analytics solution for Go.