I’m loser, baby.

So why don't you kill me?

ジェダイへの道 gForthマニュアルを読んでみる その1

C言語の勉強のあとはFORTHで遊ぶことにしました。

最初は電通大HP のテキストを使おうかと思ったのだけど、対象にしている実装がちょっと古いためにコマンド名が他の実装とかなり異なっているようだった。だもんで取り急ぎgForthのマニュアルのチュートリアルを使うことに。

 使ってみたのはpropellerのPropForthGForthbigFORTH

 

ちなみに自分は今はゲームで遊ぶ以外はLinuxMint使ってますが、出来れば自分のOSが変わってしまっても作業が継続できるようなものと付き合いたいと思ってまして、音楽制作環境とか開発環境とかそういうので揃えてます。そういう意味ではbigFORTHはWindowsネイティブもあるから良いかもしれない。(gForthもMinGWで環境であればWindowsで動くと思うが)

FORTHはCLIのみの実装が多いみたいだけれどもbigForthはGUI環境がちゃんとある。Windowsは普通に立ち上げれば良いし、Linuxで起動するときは

bigforth

CLI版、

xbigforth

でX対応版が起動します。

GUI版はメニューから3DCGのデモやゲームが遊べたりするので面白いんじゃないかな。

 

とりあえずPropForthはミニマムな実装なので足りないコマンドが多々ある前提で、メモを取りながら、bigFORTHをメインに3実装でチュートリアルを進めてみる。

特に大きな違いもなく、チュートリアル内容も理解しつつ順調に進んだけれど、ローカル関数のチュートリアルのところでGForthの文法がbigFORTHで適応しなくなった。

 

さて、どうなんだろう?ローカル変数あつかえるなら便利なんだけど、FORTHの実装として、ローカル変数という考え方自体があるのかどうかも自分は判ってない状況。作者のムーア先生としてはANSは良く思っていないけど、ANSとか見た上で勉強用の実装を選んだほうが良いのだろうか。

それで少し実際動かしてみたり調べてみたらANS準拠の実装になっているのはGForth、pForth、違うのはyForth、bigFORTHみたい。

 

ムーア先生はエッセイを読んだ限りでは、大きな実装のFORTHというのはあまり肯定してなくて、目的に合わせて様々なFORTHがたくさんある状態を是としていたようなので、この状況は良いのかもしれないが初学者としては悩みどころかもしれない。

まず付き合ってみるのはGForth、bigForthみたいな満艦飾の実装じゃなくて、ANSも意識しつつ小さな実装のpForthとかが良いのかも。