factor
foth
Our great sponsors
factor | foth | |
---|---|---|
59 | 9 | |
1,583 | 70 | |
1.0% | - | |
9.8 | 5.1 | |
2 days ago | 2 months ago | |
Factor | Go | |
BSD 2-clause "Simplified" License | 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.
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
foth
- Show HN: Writing a simple FORTH-like system, in simple steps
- Show HN: Implementing a simple FORTH, inspired by a Hacker News thread
-
Byte Magazine: The FORTH programming language
I hacked up a simple forth-like system in golang, by following the overview posted in this hackernews comment-chain:
https://news.ycombinator.com/item?id=13082825
The result is here:
https://github.com/skx/foth
It's not real, but it was a pretty fun experiment regardless.
-
Jonesforth – A sometimes minimal FORTH compiler and tutorial (2007)
Here's one of the many forks that brings it up to 64-bit:
https://github.com/matematikaadit/jombloforth
If you like forth there's an awesome series of comments here on hacker news on building a simple variant in a few simple steps:
https://news.ycombinator.com/item?id=13082825
I took that, and built a simple forth-like system, in golang following the original recipe and breaking it down into simple steps for learning-purposes:
https://github.com/skx/foth
- Forth control flow execution steps.
-
ColorForth (2009)
I'll always vote up submissions referencing anything FORTH related. For me FORTH is as much fun as lisp appears to be for others. I've never really done much with it, but I always like the simplicity and the ability to reason about it.
Sure FORTH has problems of its own, but it's always nice to use. I've hacked up a couple of simple FORTH-like systems over the years, most recently this one which was inspired by a thread on this site:
https://github.com/skx/foth
A lot of people go through guides of writing a lisp, I'd love to urge people to try writing a simple FORTH interpreter instead, or even something somewhat related such as TCL.
-
Lang Jam: create a programming language in a weekend
There's even a recipe posted in a couple of comments here:
https://news.ycombinator.com/item?id=13082825
I followed that guide to implement a simple FORTH-like system in golang:
https://github.com/skx/foth
As I was following the implementation recipe I broke it down into "educational steps". Although it isn't a true FORTH it is pretty easy to understand and useful enough to embed inside other applications.
Now and again I consider doing it again, but using a real return-stack to remove the hardcoded control-flow words from the interpreter, but I never quite find the time.
- Tutorial-style FORTH implementation written in Golang
-
Wisp: A light Lisp written in C++
I actually hacked up a simple forth-like system, after reading a brief howto here on hackernews:
https://github.com/skx/foth/
Here's the thread which has the barebones overview which inspired me:
https://news.ycombinator.com/item?id=13082825
I could have taken it further, but the implementation there is not "real" in the sense that there is no real return-stack, so you can't implement IF-statements using the lower-level primitives.
That said it is a good starting point, and I had some fun doing it. I'd guesstimate it is more of a single weekend project though, rather than longer.
What are some alternatives?
jonesforth - Mirror of JONESFORTH
wisp - A little Clojure-like LISP in JavaScript
durexforth - Modern C64 Forth
rustc_codegen_cranelift - Cranelift based backend for rustc
bondi - source code for the bondi programming language
cling - The cling C++ interpreter
Raylib-CsLo - autogen bindings to Raylib 4.x and convenience wrappers on top. Requires use of `unsafe`
sectorlisp - Bootstrapping LISP in a Boot Sector
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!
zForth - zForth: tiny, embeddable, flexible, compact Forth scripting language for embedded systems
batteries-included - Batteries Included project
Vacietis - C to Common Lisp compiler