| Tiedostotyyppi | APK |
|---|---|
| Kustantaja | Tomohide NANIWA |
| Julkaisupäivä | 19.10.2019 |
| Lisäyspäivämäärä | 19.10.2019 |
| Os vaatimukset | Android |
| Vaatimukset | Requires Android |
| Latauksia yhteensä | 0 |
| Hinta | $1.00 |
Kuvaus
Frtm (FoRTh Modoki) on ohjelmisto, joka simuloi ohjelmointikieltä FORTH. Sen ei kuitenkaan ole tarkoitus toistaa tiukkaa FORTHia. Kääntäjää ei ole, mutta käyttäjän määrittämän sanan sanat ja vakiot tulkitaan, kun se rekisteröidään.
On myös joitain näkökohtia toisin kuin FORTH: frtm:llä ei ole sanoja manipuloida paluupinoa, kun taas frtm sallii sanan rekursiivisen määrittelyn.
Frtm tukee myös reaalilukujen laskemista. Siinä on matemaattisia toimintoja, kuten eksponentiaali, neliöjuuri, trigonometriset funktiot, hyperboliset funktiot, bittikohtaiset toiminnot. Joten frtm voi olla tieteellisen laskimen vaihtoehtoinen ohjelmisto.
Lausekkeen tulkinta suoritetaan käänteisen puolamerkin (RPN) mukaisesti. Frtm:ssä on ehdollinen haara "if", rakenne silmukalle "do-while" ja "for-loop". Voit myös luoda uuden sanan yhdistämällä sanan.
Android-käyttöjärjestelmään on lisätty sanakirjan ja pinon alkuperäisen koon asetukset, mahdollisuus tallentaa sanakirjassa oleva sana "sanakirjaan". "Sanakirjan" määrä on rajoitettu kolmeen.
Tarkempia tietoja kielestä saat japaninkieliseltä verkkosivulta.
Jos haluat testata frtm:ää vapaasti, kokeile frtm:n Java-sovelmaversiota seuraavalla verkkosivulla:
http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html
*** ESIMERKKEJÄ sanoista ***
* Kahden luvun keskiarvo
: ave + 2,0/;
* N numeron keskiarvo
: nave swap over 1 for rot + silmukan vaihto 1.0 */;
2 4 6 8 10 5 nave . kr
0 1 2 3 4 5 6 7 8 9 10 SP nave . kr
* N luvun populaatiovarianssi
: nvarp dup 1+ kopio 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
* N luvun puolueeton varianssi
: nvar dup 1+ kopio nave SP nrotr swap dup * over 1 for rot dup * + loop SP nrot dup * 3 ndup * - swap 1- 1.0 */;
2 4 6 8 10 5 nvar . kr
* Kahden luvun suurin yhteinen jakaja
: gcd vaihda % dup 0 > while drop ;
1001 819 gcd . kr
* Faktoriaalinen [fakta(1)=1, tosiasia(n)=n*fakta(n-1)]
** Rekursio
: factr dup 1=if else dup 1- factr * endif ;
10 faktaa. kr
** Iteraatio
: tosiasia 1 swap 1+ 1 I * silmukaksi ;
10 tosiasiaa. kr
* Fibonacci-sekvenssi [fib(0)=0, fib(1)=1, fib(n)=fib(n-1) + fib(n-2)]
** Rekursio
: fib dup 0= if else dup 1=if else dup 1 - fib swap 2 - fib + endif endif ;
30 fib. kr
** Iteraatio
: fibi dup 0= if else 0 1 rot 1 swap over + silmukan swap drop endif ;
30 fibi. kr
* Grafiikka
** Täytä suorakulmio
: laatikot 16 0 I setcol 10 20 I * + dup 100 100 rectf loop ;
gm laatikot
: hls 16 0 I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 rectf silmukka ;
gm hls
** Rekursiivinen piirtäminen (Koch-käyrä)
: pre 5 kopio pudota ;
: genx 3 ndup 6 ndup - * miinus 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 kopio genx 7 nrotr geny ;
: pitää 7 nrotr 7 nrotr pre ;
: post 9 nrot 9 nrot 4 nrot 4 nrot 5 ndup 1- ;
: rivi moveto lineto ;
: koch dup 0= jos pudota rivi muu
pre 0 0 gen pitää 33 0 gen post koch
pre 33 0 gen pitää 50 -28 gen post koch
pre 50 -28 gen pitää 66 0 gen post koch
pre 66 0 gen pitää 100 0 gen post koch
5 ndropa
loppu Jos ;
: 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
** ReGIS-grafiikkapäätteen suora käyttö, kuten escape-sekvenssi
gm
(W(I15)P[50,50]C(S)[][+40, +40][+40, -40][+40, +40][+40, -40][+40,+ 40][+40, -40][](E)) .
(W(112)P[50,150]F(C(B)[200,+200][+200,-150](E))) .
(W(I11)P[70,170]T(S16)[16,12]'Hello World') .
// Käytettäessä sanaa 'grdemo', joitain grafiikan esimerkkisanoja rekisteröidään sanakirjaan.