読者です 読者をやめる 読者になる 読者になる

こんにちはマイコン制御

May FORTH be with you.

factorメモ(たぶん)その1

  • インストールしなくてもここでfactorのお試しができる。
    • でも解凍>即実行化だしhelpがとても良く出来ているので、お試しでもローカルでの実行を強くお勧め

ideone.com

  • インフォサイエンスのWikiの「連鎖性言語」関連の項目が大変読みごたえがある。

oss.infoscience.co.jp

  • もともとfactorはゲーム作るために開発されたらしい。
    • ライブラリ、サンプルにもゲーム関連が多い。インテル8080のエミュレーター含むレトロゲームなんてのもある。
    • だけれど自分の環境だとalut.dllまたはlibalut.soの不適合で上手く動いてくれない。残念。
  • デプロイに関して。
    • linuxでは今のところ上手く動いてくれない。
    • Windowsでは、どうやらスクリプトとして動くものは、"deploy-tool"で上手く設定してやれば単独実行ファイルを作れる。
      • 最悪、すべてのイメージごとデプロイすれば動くようだが、70M以上の大きさになってしまう。
        • ちなみにテトリスのサンプルが3M、boidsのサンプルだと4Mとかで動く。
      • Wikipedia日本語版の記述だとVMとイメージファイルを吐き出すような説明になっているが、基本単独のネイティブコードがコンパイルされます。
  • factorのワードはフォルダ構造で管理されているが、ディレクトリ名XXXのサブディレクトリYYYで定義されているワードに対しては"XXX.YYY"と記述することでアクセスできる。C言語の構造体の書式。
  • Forthでは命令/関数であるワードの集合体であるディクショナリーがいわゆるVMに対するイメージファイルになるのだけれど、factorを立ち上げたときはscratchpadというイメージファイルでVMが動く。
    • scaffoldで雛形を作ってアプリを書いていく際には、ソースに「USE:」ワードを使って、ワード/ディクショナリーを追加していく。
      • 例えばprintワードを使うにはioイメージが必要。C言語のstdio.hと同じ感じ。
      • 単独で動くスクリプトにはMAIN:が必要だったりするのもC言語っぽい。
  • UTF-8対応なので日本語も表示できる。
    • Linuxだと問題ないけど、Windows10のリスナーだと字化けした。字化けした箇所をエディターとかにコピペするとちゃんと表示される。
  • なんかsqueakを触ったときのワクワク感に近いものを感じる。
    • まだほとんどソース書いてないけど、リスナーいじっているだけでもfactor楽しい!
      • forthとは関係ないけど、自分はプログラム書くのもそうだけど、もっとプログラムを読むべきだ。
    • pixilangでも早く遊びたい。