( Nano Forth by あるる ) ・はじめに Forth言語(の亜種)です。 ・使い方 editorにプログラムを書き、F5で実行できます ・文法 ワードごとに空白、改行、タブで区切ってください 1 1 + . 1 1 + . 大文字小文字は区別しません A 1 + . a 1 + . ・変数機能について A〜Zの一文字の変数が使うことができます。 A 1 + . 変数名の後ろに!をつけると代入になります 20 A! ・ワード一覧 ( ) 括弧の中はコメントになります 数値 書いた数値をスタックに積みます . スタックから1つ取り出し表示します(改行あり) , スタックから1つ取り出し表示します(改行なし) ? ユーザーに入力を求めます cls コンソール画面を初期化します + - * / % & ^ | スタックから2つ取り出し演算してから結果をスタックに積みます < > = ! <= >= スタックから2つ取り出し比較してから結果をスタックに積みます if{ スタックから1つ取り出し0でなければ波括弧内を実行します }else{ if{ワードで0であればここから先が実行されます } ifブロックを閉じます [ ループ開始地点です ] ループ終了地点です break ループを強制的に抜けます continue ループの頭に戻ります : ワードを定義します。詳しくは後ほど ; ワードブロックを閉じます。 ret ワード途中で戻ります dup スタックから1つ取り出した後2つ積みます(一番最後のものを複製) del スタックから1つ取り出して、その値を捨てます swap スタックの先頭2つを入れ替えます ・ワードについて Forthにはワードという仕組みがあります。 ほかの言語の「関数」みたいなものです : add 42 + ; 20 add . : 名前 プログラム〜〜 ; でひとつの塊です。 複数行にわたって書くことも、引数をもらうことも、途中で戻ることもちろん可能です ※引数はスタックで受け渡ししてください : abs dup 0 < if{ 0 swap - } ; 20 abs . -20 abs . ・サンプルプログラム @無駄に256から0まで表示 cls 256 i! [ i dup , ( とりあえず表示 ) 1 - dup i! ( 1引いて代入 ) 7 & 0 = ( 8で割ったあまりが0なら ) if{ 0 . } ( 改行の変わりに^^; ) i 0 = ( iが0と等しいなら ) if{ break } ( 抜ける ) ] @素因数分解 ? i! ( 入力をもらう ) 2 k! ( 代入しておく ) [ i k % ( iとkを割ったあまりが ) 0 = ( 0と等しいならば ) if{ i k / i! ( iをkで割ったものをiに代入 ) k . ( kを表示 ) }else{ k 1 + k! ( kに1を足してkに入れる ) } k i 2 / > ( kがiを2で割ったものを超えるならば ) if{ break } ( 抜ける ) ] i 0 ! ( iが0でなければ ) if{ i . } ( 最後に表示 ) ・開発 あるる arle's Laboratory http://www17.atpages.jp/arle/