| Tipo de arquivo | APK |
|---|---|
| Editor | Tomohide NANIWA |
| Data de lançamento | 19 de out. de 2019 |
| Data adicionada | 19 de out. de 2019 |
| Os requisitos | Android |
| Requisitos | Requires Android |
| Total de downloads | 0 |
| Preço | $1.00 |
Descrição
Frtm (FoRTh Modoki) é um software que simula a linguagem de programação FORTH. No entanto, não se destina a reproduzir o FORTH estrito. Não há compilador, mas as palavras e as constantes em uma palavra definida pelo usuário são interpretadas quando ela é registrada.
Existem também alguns aspectos diferentes de FORTH: frtm não possui as palavras para manipular a pilha de retorno, enquanto frtm permite a definição recursiva da palavra.
Frtm também suporta o cálculo de números reais. Tem funções matemáticas como exponencial, raiz quadrada, funções trigonométricas, funções hiperbólicas, operações bit a bit. Então frtm pode ser o software alternativo da calculadora científica.
A interpretação da expressão será conduzida de acordo com a Notação Polonesa Reversa (RPN). Frtm tem ramificação condicional "if", estrutura para um loop "do-while" e "for-loop". Você também pode criar uma nova palavra combinando a palavra.
No sistema operacional Android, foram adicionadas a configuração do tamanho inicial do dicionário e da pilha, a capacidade de salvar a palavra no dicionário no "livro de palavras". O número de "livro de palavras" é limitado a até três.
Para uma especificação mais detalhada do idioma, consulte a página da Web em japonês para obter suporte.
Se você quiser testar o frtm livremente, tente a versão do applet Java do frtm na seguinte página da web:
http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html
*** EXEMPLOS de palavras ***
* Média de dois números
: média + 2,0/;
* Média de N números
: nave swap sobre 1 para rot + loop swap 1.0 */;
2 4 6 8 10 5 nave . cr
0 1 2 3 4 5 6 7 8 9 10 SP nave . cr
* Variação populacional de N números
: 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 . cr
* Variação imparcial de N números
: nvar dup 1+ copy 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 . cr
* Máximo divisor comum de 2 números
: gcd faz swap sobre % dup 0 > while drop ;
1001 819 gcd. cr
* Fatorial [fato(1)=1, fato(n)=n*fato(n-1)]
** Recursão
: factr dup 1=if else dup 1- factr * endif ;
10 fato. cr
** Iteração
: facti 1 troca 1+ 1 por I * loop ;
10 fatos. cr
* Sequência de Fibonacci [fib(0)=0, fib(1)=1, fib(n)=fib(n-1) + fib(n-2)]
** Recursão
: fib dup 0= if else dup 1=if else dup 1- fib swap 2 - fib + endif endif ;
30 fib. cr
** Iteração
: fibi dup 0= if else 0 1 rot 1 for swap over + loop swap drop endif ;
30 fíbi. cr
* Gráficos
** Retângulo de preenchimento
: caixas 16 0 para I setcol 10 20 I * + dup 100 100 retf loop ;
caixas de gm
: hls 16 0 para I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 retf loop ;
gm hls
** Desenho Recursivo (curva de Koch)
: queda pré 5 cópias ;
: genx 3 ndup 6 ndup - * menos 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 copy genx 7 nrotr geny ;
: mantenha 7 nrotr 7 nrotr pré ;
: post 9 nrot 9 nrot 4 nrot 4 nrot 5 ndup 1- ;
: linha move para linhato ;
: koch dup 0= se drop line else
pré 0 0 gen mantenha 33 0 gen post koch
pré 33 0 gen mantenha 50 -28 gen post koch
pré 50 -28 gen mantenha 66 0 gen post koch
pré 66 0 gen mantenha 100 0 gen post koch
5 ndrop
fim se ;
: 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
** Uso direto do terminal gráfico ReGIS como sequência de escape
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') .
// Usando a palavra 'grdemo', algumas palavras para exemplos de gráficos serão registradas no dicionário.