| Tip de fișier | APK |
|---|---|
| Editor | Tomohide NANIWA |
| Data eliberării | 19 oct. 2019 |
| Data adaugata | 19 oct. 2019 |
| Cerințele OS | Android |
| Cerințe | Requires Android |
| Descărcări totale | 0 |
| Preț | $1.00 |
Descriere
Frtm (Forth Modoki) este un software care simulează limbajul de programare FORTH. Cu toate acestea, nu este destinat să reproducă strictul FORTH. Nu există un compilator, dar cuvintele și constantele dintr-un cuvânt definit de utilizator sunt interpretate atunci când este înregistrat.
Există, de asemenea, unele aspecte, spre deosebire de FORTH: frtm nu are cuvintele pentru a manipula stiva de returnare, în timp ce frtm permite definirea recursivă a cuvântului.
Frtm acceptă și calcularea numerelor reale. Are funcții matematice precum exponențiale, rădăcină pătrată, funcții trigonometrice, funcții hiperbolice, operații pe biți. Deci frtm poate fi software-ul alternativ al calculatorului științific.
Interpretarea expresiei va fi efectuată în conformitate cu notația poloneză inversă (RPN). Frtm are ramură condiționată „dacă”, structură pentru o buclă „do-while” și „for-loop”. De asemenea, puteți crea un cuvânt nou combinând cuvântul.
Pe sistemul de operare Android, a fost adăugată configurația dimensiunii inițiale a dicționarului și a stivei, abilitatea de a salva cuvântul în dicționar în „cartea de cuvinte”. Numărul de „cărți de cuvinte” este limitat la maximum trei.
Pentru o specificație mai detaliată a limbii, vă rugăm să consultați pagina Web în japoneză pentru asistență.
Dacă doriți să testați gratuit frtm, vă rugăm să încercați versiunea Java applet a frtm pe următoarea pagină web:
http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html
*** EXEMPLE de cuvinte ***
* Media a două numere
: av + 2,0/;
* Media N numere
: swap nave peste 1 pentru rot + loop swap 1.0 */;
2 4 6 8 10 5 naos . cr
0 1 2 3 4 5 6 7 8 9 10 SP nava . cr
* Varianța populației a N numere
: nvarp dup 1+ copy nave SP nrtr swap dup * peste 1 pentru rot dup * + loop swap 1.0 */SP nrot dup * - ;
2 4 6 8 10 5 nvarp . cr
* Varianta imparțială a N numere
: nvar dup 1+ copy nave SP nrtr swap dup * peste 1 pentru rot dup * + loop SP nrot dup * 3 ndup * - swap 1- 1.0 */;
2 4 6 8 10 5 nvar . cr
* Cel mai mare divizor comun al 2 numere
: gcd face swap peste % dup 0 > while drop ;
1001 819 mcd . cr
* Factorial [fapt(1)=1, fapt(n)=n*fapt(n-1)]
** Recursie
: factr dup 1=if else dup 1- factr * endif ;
10 factr . cr
** Repetare
: facti 1 swap 1+ 1 for I * bucla ;
10 fapte. cr
* Sirul lui Fibonacci [fib(0)=0, fib(1)=1, fib(n)=fib(n-1) + fib(n-2)]
** Recursie
: fib dup 0= if else dup 1=if else dup 1- fib swap 2 - fib + endif endif ;
30 fib. cr
** Repetare
: fibi dup 0= if else 0 1 rot 1 for swap over + loop swap drop endif ;
30 fibi . cr
* Grafica
** Umpleți dreptunghiul
: casete 16 0 pentru I setcol 10 20 I * + dup 100 100 rectf loop ;
cutii gm
: hls 16 0 pentru I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 rectf loop ;
gm hls
** Desen recursiv (curba Koch)
: pre 5 copy drop ;
: genx 3 ndup 6 ndup - * minus 100/swap 4 ndup 7 ndup - * 100/+ 5 ndup +
5 nrtr 4 drop ;
: geny swap 3 ndup 6 ndup - * 100/swap 4 ndup 7 ndup - * 100/+ 4 ndup +
5 nrtr 4 drop ;
: gen 6 copy genx 7 nrtr geny ;
: keep 7 nrtr 7 nrtr pre ;
: post 9 nrot 9 nrot 4 nrot 4 nrot 5 ndup 1- ;
: line moveto lineto ;
: koch dup 0= dacă drop line altfel
pre 0 0 gen keep 33 0 gen post koch
pre 33 0 gen keep 50 -28 gen post koch
pre 50 -28 gen keep 66 0 gen post koch
pre 66 0 gen keep 100 0 gen post koch
5 picături
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
** Utilizarea directă a terminalului grafic ReGIS, cum ar fi secvența de evadare
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]'Bună lume') .
// Folosind cuvântul „grdemo”, unele cuvinte pentru exemple de grafică vor fi înregistrate în dicționar.