| Filtyp | APK |
|---|---|
| Utgivare | Tomohide NANIWA |
| Utgivningsdatum | 19 okt. 2019 |
| Datum tillagt | 19 okt. 2019 |
| Os krav | Android |
| Krav | Requires Android |
| Totalt antal nedladdningar | 0 |
| Pris | $1.00 |
Beskrivning
Frtm (FoRth Modoki) är en programvara som simulerar programmeringsspråket FORTH. Det är dock inte avsett att återskapa den strikta FORTH. Det finns ingen kompilator, men orden och konstanterna i ett användardefinierat ord tolkas när det registreras.
Det finns också vissa aspekter till skillnad från FORTH: frtm har inte orden för att manipulera returstacken, medan frtm tillåter den rekursiva definitionen av ordet.
Frtm stöder även beräkning av reella tal. Den har matematiska funktioner som exponential, kvadratrot, trigonometriska funktioner, hyperboliska funktioner, bitvisa operationer. Så frtm kan vara den alternativa programvaran för vetenskaplig kalkylator.
Tolkning av uttrycket kommer att utföras i enlighet med Reverse Polish Notation (RPN). Frtm har villkorlig gren "if", struktur för en loop "do-while" och "for-loop". Du kan också skapa ett nytt ord genom att kombinera ordet.
På Android OS har konfigurationen av den ursprungliga storleken på ordboken och stacken, möjligheten att spara ordet i ordboken till "ordboken" lagts till. Antalet "ordböcker" är begränsat till upp till tre.
För en mer detaljerad specifikation av språket, se webbsidan på japanska för support.
Om du vill testa frtm fritt, prova Java-appletversionen av frtm på följande webbsida:
http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html
*** EXEMPEL på ord ***
* Genomsnitt av två siffror
: ave + 2,0/;
* Genomsnitt av N tal
: mittskepp swap över 1 för röta + loop swap 1.0 */;
2 4 6 8 10 5 skepp . cr
0 1 2 3 4 5 6 7 8 9 10 SP-skepp . cr
* Populationsvarians för N tal
: nvarp dup 1+ kopia nav SP nrotr swap dup * över 1 för röt dup * + loop swap 1.0 */SP nrot dup * - ;
2 4 6 8 10 5 nvarp . cr
* Opartisk varians av N tal
: nvar dup 1+ kopia nav SP nrotr swap dup * över 1 för röt dup * + loop SP nrot dup * 3 ndup * - swap 1- 1.0 */;
2 4 6 8 10 5 nvar . cr
* Största gemensamma delare av 2 tal
: gcd byter över % dup 0 > while drop ;
1001 819 gcd . cr
* Faktoriell [fakta(1)=1, faktum(n)=n*fakta(n-1)]
** Rekursion
: factr dup 1=om annat dup 1- factr * endif ;
10 fakta. cr
** Iteration
: facti 1 byt 1+ 1 mot I * loop ;
10 fakta. cr
* Fibonacci-sekvens [fib(0)=0, fib(1)=1, fib(n)=fib(n-1) + fib(n-2)]
** Rekursion
: fib dup 0= if else dup 1=if else dup 1- fib swap 2 - fib + endif endif ;
30 fib. cr
** Iteration
: fibi dup 0= om annat 0 1 röta 1 för swap over + loop swap drop endif ;
30 fibi. cr
* Grafik
** Fyll rektangel
: lådor 16 0 för I setcol 10 20 I * + dup 100 100 rectf loop ;
gm lådor
: hls 16 0 för I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 rectf loop ;
gm hls
** Rekursiv ritning (Koch-kurva)
: pre 5 copy drop ;
: genx 3 ndup 6 ndup - * minus 100/swap 4 ndup 7 ndup - * 100/+ 5 ndup +
5 nrotr 4 ndrop ;
: geny swap 3 ndup 6 ndup - * 100/swap 4 ndup 7 ndup - * 100/+ 4 ndup +
5 nrotr 4 ndrop ;
: gen 6 kopia genx 7 nrotr geny ;
: behåll 7 nrotr 7 nrotr pre ;
: stolpe 9 nrot 9 nrot 4 nrot 4 nrot 5 ndup 1- ;
: linje flytta till linje till ;
: koch dup 0= om drop line annat
pre 0 0 gen keep 33 0 gen post koch
pre 33 0 gen keep 50 -28 gen post koch
pre 50 -28 gen behåll 66 0 gen post koch
pre 66 0 gen behåll 100 0 gen post koch
5 ndrop
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
** Direkt användning av ReGIS grafikterminal som escape-sekvens
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]'Hello World') .
// Genom att använda ordet 'grdemo' kommer några ord för exempel på grafik att registreras i ordboken.