( uid_6201 | 2021. 06. 07., h – 23:05 )

Apropó kis méret: FORTH ebben tuti nyerő. Interaktív, amit gépelsz azt kezeli / új parancsként fordítja.
https://gist.githubusercontent.com/lbruder/10007431/raw/4b87f81da0adddb…

Lefordítva ARM Cortex mikrovezérlőre :

$ arm-none-eabi-size lbForth
   text       data        bss        dec        hex    filename
  12584       2416      66100      81100      13ccc    lbForth

Ebből a bss azért nagy, mert:

#define MEM_SIZE 65536 /* main memory size in bytes */
byte memory[MEM_SIZE];

Levéve 4096-ra a FORTH memóriát:
$ arm-none-eabi-size lbForth
   text       data        bss        dec        hex    filename
  12584       2416       4660      19660           516a    lbForth

Tehát 16 kB flash + 8 kB RAM nagyságú mikrovezérlő elég a FORTH-hoz, ebben pedig marad annyi flash + RAM, amiben pl. I2C és egyéb rutinok is elférnek.
Ez egy kisebb STM32F1xx-ben (ARM Cortex M3) is rendelkezésre áll.

Ugyanez 8 bites AVR esetére szintén 4096 byte-os FORTH memória esetén ennyi erőforrást igényel:

$ avr-size lbForth
   text       data        bss        dec        hex    filename
   7742       3498       4408      15648       3d20    lbForth

A text flash részben van a 3 kB-nyi lbForth-ban levő FORTH alaputasítás forráskód is. Ezt ha előfordított módon illesztjük be, kb. 2,3 kByte megtakarítást jelenthet.