Skip to content

bahmanm/bjforth

Repository files navigation

bjForth

CircleCI GitHub commit activity Matrix License: GPL v3

bjForth which stands for Bahman's Forth on the JVM is an attempt at writing a Forth which would allow the programmer to tap into the JVM and its ecosystem.

The idea came to my mind in 2014-2015, but I never had the time nor the understanding of how a Forth is implemented.

Then in 2022, I sat down and read the source of JONESFORTH. It is a rather minimal and amasingly well-documented Forth implementation!

After that I knew what to do!

Roadmap

v0.1.0

The initial version. It should remain relatively close to JONESFORTH and deviations should be minimal and only when necessary.

v1.0.0

Support basic JVM interop such as below:

1 2 3 @java.util.List @.of .s
\ java.util.List <3, 2, 1>

"Bar" @my.package.Foo @.new @.greet
\ Hello, Bar

v2.0.0

Support lambdas and class/interface creation.


Implementation Notes

A bunch of notes which are most probably useless to anyone else but me.

Non-primitive words

The list of words which are defined in the assembler file (jonesforth.S) but are in fact Forth words.

  • COLON @ jonesforth.S:1869
  • SEMICOLON @ jonesforth.S:1881

Releases

No releases published

Packages

No packages published

Languages