コンテンツにスキップ
FF

frtm for Android APK

出版社: Tomohide NANIWA
Android APK $1.00
ダウンロード 0 ダウンロード
ファイルタイプAPK
出版社 Tomohide NANIWA
発売日2019/10/19
追加された日付2019/10/19
OSの要件Android
要件Requires Android
総ダウンロード数0
価格$1.00

説明

Frtm (ForTh Modoki) は、プログラミング言語 FORTH をシミュレートするソフトウェアです。ただし、厳密な FORTH を再現することを意図したものではありません。コンパイラはありませんが、ユーザー定義語の単語と定数は、登録時に解釈されます。

FORTH とは異なる側面もいくつかあります。frtm には戻りスタックを操作するための単語がありませんが、frtm では単語の再帰的な定義が可能です。

Frtm は実数の計算もサポートしています。指数関数、平方根、三角関数、双曲線関数、ビット演算などの数学関数があります。したがって、frtm は関数電卓の代替ソフトウェアになる可能性があります。

式の解釈は、逆ポーランド記法 (RPN) に従って行われます。 Frtmには、条件分岐「if」、ループ構造「do-while」、「for-loop」があります。単語を組み合わせて新しい単語を作ることもできます。

Android OSでは、辞書の初期サイズとスタックの設定、辞書の単語を「単語帳」に保存する機能が追加されました。 「単語帳」は3冊までに制限されています。

言語の詳細な仕様については、日本語のサポート Web ページを参照してください。

frtm を自由にテストしたい場合は、次の Web ページで Java アプレット版の frtm を試してください。

http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html

*** 単語の例 ***

* 2 つの数値の平均

: 平均 + 2.0/;

* N 数の平均

: 腐敗 + ループ スワップ 1.0 の場合は 1 を超えるネイブ スワップ */;

2 4 6 8 10 5 ネイブ。 cr

0 1 2 3 4 5 6 7 8 9 10 SPネイブ。 cr

* N 数の母集団分散

: 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

* N 数の偏りのない分散

: 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

* 2 つの数の最大公約数

: gcd do swap over %dup 0 > while drop ;

1001 819 gcd . cr

* 階乗 [事実 (1)=1、事実 (n)=n*事実 (n-1)]

** 再帰

: ファクト dup 1=if else dup 1-ファクト * endif ;

10ファクター。 cr

** 反復

: ファクト 1 I * ループの 1+1 を交換します。

10事実。 cr

* フィボナッチ数列 [fib(0)=0, fib(1)=1, fib(n)=fib(n-1) + fib(n-2)]

** 再帰

: fib dup 0= if else dup 1=if else dup 1- fib swap 2 - fib + endif endif ;

30フィブ。 cr

** 反復

: fibi dup 0= if else 0 1 rot 1 for swap over + loop swap drop endif ;

30フィビ。 cr

* グラフィック

** 塗りつぶし長方形

: ボックス 16 0 for I setcol 10 20 I * + dup 100 100 rectf loop ;

ジムボックス

: hls 16 0 for I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 rectf ループ;

gm hls

** 再帰描画 (コッホ曲線)

: プレ 5 コピー ドロップ ;

: genx 3 ndup 6 ndup - * マイナス 100/スワップ 4 ndup 7 ndup - * 100/+ 5 ndup +

5 nrotr 4 ndrop ;

: Geny スワップ 3 ndup 6 ndup - * 100/スワップ 4 ndup 7 ndup - * 100/+ 4 ndup +

5 nrotr 4 ndrop ;

: gen 6 コピー genx 7 nrotr geny ;

: 7 nrotr 7 nrotr pre を保持します。

: 投稿 9 nrot 9 nrot 4 nrot 4 nrot 5 ndup 1- ;

: lineto lineto ;

: koch dup 0= 行をドロップする場合

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 ドロップ

endif ;

: kochs 10 setcol 89 440 551 440 4 koch

11 setcol 551 440 320 40 4 コッチ

12 setcol 320 40 89 440 4 コッチ;

GMコックス

** エスケープ シーケンスのような ReGIS グラフィックス ターミナルの直接使用

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') .

// 「grdemo」という単語を使用すると、グラフィックスの例のいくつかの単語が辞書に登録されます。

類似プログラム

代替案