pijFORTHos
foth
pijFORTHos | foth | |
---|---|---|
3 | 9 | |
248 | 72 | |
0.0% | - | |
10.0 | 5.1 | |
over 4 years ago | 3 months ago | |
Assembly | Go | |
GNU Lesser General Public License v3.0 only | 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.
pijFORTHos
- Newbie with questions
-
Anon knows programming
And having run across jonesForth (https://github.com/organix/pijFORTHos/tree/master/annexia read the .s file and then the .f file) and basically the idea of building your own personal software stack from scratch, but part of the problem is just having hardware that wasn’t designed to be super complicated to interface with (like USB being much more complicated than PS/2 or wiring up your own grid of switches for a keyboard).
-
Jonesforth – A sometimes minimal FORTH compiler and tutorial (2007)
I want to write one for bare metal (non-Linux) raspberry pi (ARMv6 32 bit on Raspberry Pi 1 and Zero; ARMv7 and ARMv8 on higher models and also supports 64 bit). I want to have no dependencies required though so was thinking of bootstrapping it with nothing but machine code (determined initially with the help of an assembler and documentation of course). Someone has already ported jonesforth the Raspberry Pi[1] but using serial i/o as the user interface and it has dependecies to build it, but I should be able to get ideas from how they coded their assembly parts compared to the original jonesforth. I want to be able to use HDMI for the screen (already tried it out with some bare metal tutorials in assembly so that's do-able) and again, with no dependencies. And I want to show people how to do it themselves, not just have it be something to run that they don't understand fully. It should also be possible to have the forth kernel build/assemble itself if needed, or cross-target another platform.
I know I'm all talk right now, like you say, I need to manage my free time so that I would have the "copious free time" to work on this.
[1] https://github.com/organix/pijFORTHos
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?
zForth - zForth: tiny, embeddable, flexible, compact Forth scripting language for embedded systems
wisp - A little Clojure-like LISP in JavaScript
forthy2 - a Forth (for you) too
rustc_codegen_cranelift - Cranelift based backend for rustc
cs-topics - My personal curriculum covering basic CS topics. This might be useful for self-taught developers... A work in development! This might take a very long time to get finished!
cling - The cling C++ interpreter
ti84-forth - A Forth implementation for the TI-84+ calculator.
sectorlisp - Bootstrapping LISP in a Boot Sector
factor - Factor programming language
language-incubator - Learning compilers, interpreters, code generation, virtual machines, assemblers, JITs, etc.