Skip to content
Dmitry Ponyatov edited this page Apr 26, 2019 · 1 revision

I choose metaL as some sort of object FORTH-like language as it can be easily implemented in a few days from scratch. It is not classical FORTH, as I target on more high-level model operates on objects. The Factor language has a feel of this. But I implement my own stack Virtual Machine written in Python. I want to mix FORTH simplicity with SmallTalk message passing over live object system (and maybe Erlang distributed actor model).

Forth (programming language)

  • extra compact primitive language without grammar in fact
  • have no syntax parser: you need only primitive lexer to implement the whole of language very easy to rewrite from scratch
  • concatenative programming via shared data stack
  • unbeatable as a command shell interface with programming ability for tiny embedded systems starting from few Kb of RAM
  • can be good as DDL/DML/OML (object manipulation language) in language-less programming systems

But I can point to a few problems of classical FORTH just right now:

  • there is no memory protection totally, in pair with direct pointer-based manipulation on a data stack mixed with other data elements
  • no dynamic memory allocation (no free/GC, just get some memory from top of vocabulary and that's all)
  • flat memory model with data bitbanging in memory and data stack cross all the application source code old and wizened STD'83: no floating point
  • no RFC-like optional proposals for widely used tasks like GUI, databases, sockets,...

To avoid these problems the metaL language was designed.