Home

Awesome

floating-lang

$ node js-output/all.js source.flt

Examples

Hello, world!

4/9*(1-10^-72)+1/10^73
4/9*(1-10^-29)+1/10^30
4444444114441/10^13
13/10+5/90*(1-10^-67)+1/10^69
247/1000
5/9*(1-10^-12)+1/10^13
4/9*(1-10^-87)+1/10^88
22555555551/10^10
3447444155555513727/10^19

cat

2*7/5
11294/11111
647/10^3

仕様

概要

Floatingは、小数の桁を利用したプログラミング言語です。

Brainf**kなどと同様に、左右無限のテープの上を動きます。テープの各番地の初期値は0です。

各行の数式の計算結果の小数点以下を命令列として解釈します。 1行目から順に実行されます。また、一行の中では小数第一位から順に実行します。 空行は許されません。

整数リテラルと四則演算、累乗、括弧、正負号が使えます。 ただし、累乗は指数が整数である必要があります。 また、$は、そのとき指しているテープ上の数字に評価されます。

命令テーブル

式の計算結果は正でなければなりません。このとき

桁と命令の対応

命令
0getchar
1putchar
2左に1回移動
3右に1回移動
4指す値を1増やす
5指す値を1減らす
6入力の終端で1、他で0を書き込む
7命令テーブルの(指す値)番地を実行
8正常終了する
9何もしない

7でテーブルに登録されていない番地を指定した場合、何も起こりません。