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.