Skip to content
/ kanji Public

A simple stack based scripting language to be used as a target for compilation

License

Notifications You must be signed in to change notification settings

rdentato/kanji

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kanji

kanji (which translates in English as "x1 computes x2 from data x3 by process x4") is a forth-like scripting language that is intended to be used as a target for transpiling higher level interpreted languages.

It may be useful in the early stages of language development if you want to have a running (albeit not final) implementation of your language while still working on the syntax/semantic aspects. Should the perfomance prove themselves adequate to your use case, nothing prevents you to use it as the final run-time.

It's a simple Forth-like VM with 26 variables, and a stack. Each value (hold in a register or in the stack) can be:

  • a 32 bit signed integer
  • a double precision floating point
  • a 48 bit pointer (good for 64-bit platforms)
  • a boolean (true/false)
  • the value nil
  • a static string
  • a vector of values
  • a dynamic buffer (for text)
  • a map from values to values

It can access external C functions (with the proper interface) and its code can be "called" from C functions.

You can check what is planned/in progress/done on the project kanban page.

I really welcome any question, suggestion, and help offer you may have. Join the channel to discuss about them.

About

A simple stack based scripting language to be used as a target for compilation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published