例えば変数arrayに10個分の要素を持つ配列を作成
> create array 10 cells allot
要素はcellというらしくて、10個のcellを割り当てる(allot)という意味らしい。
配列に値を代入。例えば2番目の要素に値20を代入。
> 20 array 2 cells + !
array自体はアドレスを示すので、「array 2 cells +」っていうのは
arrayの示すアドレスからcell2つ分先のアドレスを示すんじゃないかな、と理解した。
C言語でいうところの
char array[10];
*(array+2) = 20;
ってのと同じかと。
Continue Reading...: "初めてのFORTH その2"
FORTHは、配列やら文字列やらサイズを指定してcreateしないといけないんだね。
しかも文字列をコピーする際にはコピー先にもサイズを指定してアドレスを
用意しておかないといけない。
あ、そうなのかFORTHは動的に領域確保はしてくれないのかー
それならわざわざFORTHでやらんでも、Cでやるからいいやっとちょっと萎えたんだけど、
乗りかかった船なのでもう少し勉強してみるか。
とはいうもののFORTHと同じく逆ポーランド記法でスタック型なJoy/Cat/Factorの方が色
々使えそうなので実行環境を入れようとしてみた。
Joy
- FORTHにlispの要素が色々追加されてて楽しそう。
- 2005年くらいで開発止ってそう
- ビルドできた。
- あれgcは?
- あれcygwin shellで動かしてるとすぐにCrashしちゃうぞ。。?
Factor
- 今風なライブラリが一杯ありそう
- Manualは見難い。一覧表示できるのが欲しい。
- 意外とファイル多い
- gitでcloneしたらなぜか途中で止まっちゃった
- 0.9.1のソースを取ってきてWinXP上のcygwinでビルドして、boot.windows.x86.32と一緒に起動したんだけどなぜか動かず
- 0.9.1のWindows用バイナリを取得、cygwin shell上で動かした・・・?どうだっけ?
Cat
- ソースを取得
- あーーーC#かーーービルドできねーー
- バイナリ取得
- Pythonでインタプリタ作ってる人がいた。。うーんまだまだ機能が足らない。consも対応してないし
なんか色々やってたら、どれが動いてどれが動かんかったかわからんくなってきた。
また今度もうちょっと落ち着いて試してみよう。
ふとFORTHを触ってみたくなった。自分の勉強したことの覚え書き。
逆ポーランド記法でスタック型ってなんか格好良いよねっと思って。
確かFORTHって、2006年のLLRingで紹介あったよね。