2014-08-02から1日間の記事一覧

感想

Arduinoはメモリが少ないので、もうすこしスリムダウンというかダウンサイジングというか、 引き算したほうが良い気がします

イテレータ的な何か

たとえば、音楽を演奏する場合、スタックに全データを積んでから演奏命令 m1 m2 m3 ... mn n TONEみたいな命令にすると、メモリが足りない TONE BEGIN m1 m2 m3 m4 ... mn ENDみたくすると、、、Forthっぽくなくなっちゃうのが難点

変数

現在のスコープ内で、スタックポインタ位置から数えて 何番目かの値を取り出し、書き換えできるようにしたい (ローカル変数) あくまで番号での指定のみ

条件分岐 制御構造

できれば 末尾再帰(というよりも GOTO )などを使い、Whileなどのループ構造は無しですませたいが、、、IF とか 条件分岐はどうしても必要かも 値偽(b) 値真(a) 条件 IF # m n FはIFを意味するコードみたいな構文の場合、b a は先に両方とも評価されてしま…

サブルーチン/関数

対話モードでは定義できない(たぶん) いわゆるForthと違い コンパイルしない プログラム入力モードにて、エントリーポイントとサブルーチン番号(0〜9のみ) の対応を記憶。

ブロック

無名関数だと思うとよいのかも。 スタックフレーム 同じ深さのEndまで行くとBeginの直前までスタックなどを戻せる。 コレが無いと、引数の数を数えて手作業でpopしたり、しなきゃなんない。

2項演算

a b + # + a bみたく、逆ポーランド記法で。 前節の説明のように、実際には、+の部分は 0 C などのようになる

関数

命令語

機能のイニシャルとして覚えやすくしたい 命令語には、 スタックの値を操作するもの(関数?)と、 これから入ってくる命令語についての指示(文)とがある。 a b c ... n D nケタの10進数 a b c をpop → 16bitの整数 abcとしてスタックに積む。Decimal 例) 1 2…

言語仕様

全体に遅そうで 且つ なんか冗長な仕様 ロータリーコードスイッチで、 0〜15 (4bit)づつバイトコード(正確には4bitづつだけど)を入力 起動時のロータリースイッチの位置により動作モードを切り替え 対話モード 自動実行モード プログラム入力モード(解釈し…

その他 機能

インタプリタ自体の開発はArduino上で EEPROMにSAVE /起動時にLOADできると組み込みっぽい Arduinoマイコンはメモリが少ないので(ry デジタル入出力 アナログ出力(PWM) アナログ入力( ADコンバータ) タッチセンス 音楽演奏のTONE などが使えるといいなあ

Arduinoでセルフ開発は私にはムリだ

ワンボードマイコンArduino1枚だけで キーボードもディスプレイもシリアルも無しでセルフ開発するのを妄想してみた。 (妄想たのしいです) 対象年齢 10歳から妄想するだけだと楽しいけど、自分で実装するとなると、、、作るのムリっぽい気がしてきたー 言語…