| Typ souboru | APK |
|---|---|
| Vydavatel | Tomohide NANIWA |
| Datum vydání | 19. 10. 2019 |
| Datum přidáno | 19. 10. 2019 |
| Os požadavky | Android |
| Požadavky | Requires Android |
| Celkový počet stažení | 0 |
| Cena | $1.00 |
Popis
Frtm (FoRTh Modoki) je software, který simuluje programovací jazyk FORTH. Není však zamýšleno reprodukovat striktní FORTH. Neexistuje žádný kompilátor, ale slova a konstanty v uživatelem definovaném slově jsou interpretovány při jeho registraci.
Na rozdíl od FORTH existují také některé aspekty: frtm nemá slova pro manipulaci s návratovým zásobníkem, zatímco frtm umožňuje rekurzivní definici slova.
Frtm také podporuje výpočet reálných čísel. Má matematické funkce, jako je exponenciála, odmocnina, goniometrické funkce, hyperbolické funkce, bitové operace. Frtm tedy může být alternativním softwarem vědecké kalkulačky.
Výklad výrazu bude proveden v souladu s reverzní polskou notací (RPN). Frtm má podmíněnou větev "if", strukturu pro smyčku "do-while" a "for-loop". Nové slovo můžete také vytvořit spojením slova.
Na OS Android přibyla konfigurace počáteční velikosti slovníku a zásobníku, možnost uložit slovo ve slovníku do „slovní knihy“. Počet "slovní knihy" je omezen na tři.
Podrobnější specifikaci jazyka naleznete na webové stránce v japonštině pro podporu.
Pokud chcete frtm volně otestovat, vyzkoušejte prosím verzi Java appletu frtm na následující webové stránce:
http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html
*** PŘÍKLADY slov ***
* Průměr ze dvou čísel
: ave + 2,0/;
* Průměr N čísel
: nave swap over 1 for rot + loop swap 1.0 */;
2 4 6 8 10 5 hlavní loď . kr
0 1 2 3 4 5 6 7 8 9 10 SP loď . kr
* Populační rozptyl N čísel
: nvarp dup 1+ copy nave SP nrotr swap dup * over 1 for rot dup * + loop swap 1.0 */SP nrot dup * - ;
2 4 6 8 10 5 nvarp . kr
* Nezaujatý rozptyl N čísel
: nvar dup 1+ kopie nave SP nrotr swap dup * přes 1 pro rot dup * + smyčka SP nrot dup * 3 ndup * - swap 1- 1.0 */;
2 4 6 8 10 5 nvar . kr
* Největší společný dělitel 2 čísel
: gcd do swap přes % dup 0 > while drop ;
1001 819 gcd. kr
* Faktoriál [fakt(1)=1, fakt(n)=n*fakt(n-1)]
** Rekurze
: factr dup 1=if else dup 1- factr * endif ;
10 faktů. kr
** Iterace
: facti 1 swap 1+ 1 za I * smyčka ;
10 faktů. kr
* Fibonacciho sekvence [fib(0)=0, fib(1)=1, fib(n)=fib(n-1) + fib(n-2)]
** Rekurze
: fib dup 0= if else dup 1=if else dup 1- fib swap 2 - fib + endif endif ;
30 fib. kr
** Iterace
: fibi dup 0= if else 0 1 rot 1 for swap over + loop swap drop endif ;
30 fibi. kr
* Grafika
** Vyplnit obdélník
: boxy 16 0 pro I setcol 10 20 I * + dup 100 100 rectf loop ;
gm boxy
: hls 16 0 pro I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 rectf loop ;
gm hls
** Rekurzivní kreslení (Kochova křivka)
: pokles před 5 kopii ;
: genx 3 ndup 6 ndup - * mínus 100/swap 4 ndup 7 ndup - * 100/+ 5 ndup +
5 nrotr 4 kapka ;
: geny swap 3 ndup 6 ndup - * 100/swap 4 ndup 7 ndup - * 100/+ 4 ndup +
5 nrotr 4 kapka ;
: gen 6 kopie genx 7 nrotr geny ;
: ponechat 7 nrotr 7 nrotr pre ;
: příspěvek 9 nrot 9 nrot 4 nrot 4 nrot 5 ndup 1- ;
: řádek moveto lineto ;
: koch dup 0= if drop line else
pre 0 0 gen udržet 33 0 gen post koch
pre 33 0 gen udržet 50 -28 gen post koch
pre 50 -28 gen udržet 66 0 gen post koch
pre 66 0 gen udržet 100 0 gen post koch
5 kapek
endif;
: kochs 10 setcol 89 440 551 440 4 koch
11 setcol 551 440 320 40 4 koch
12 setcol 320 40 89 440 4 koch ;
gm kochs
** Přímé použití grafického terminálu ReGIS jako escape sekvence
gm
(W(I15)P[50,50]C(S)[][+40,+40][+40,-40][+40,+40][+40,-40][+40,+ 40][+40,-40][](E)) .
(W(I12)P[50,150]F(C(B)[200,+200][+200,-150](E)))).
(W(I11)P[70,170]T(S16)[16,12]'Ahoj světe') .
// Použitím slova 'grdemo' budou některá slova pro příklady grafiky zaregistrována do slovníku.