[H8-ML(4009)] Re: FORTH on AKI-H8/3664
From: Shigeru Makino <mac@xxxxxxxxxxxxxx>
Date: 2003年10月11日(土)06時27分09秒
macです。

"n.kobayashi"さん <kobayasi@xxxxxxxxxxxxxxxxxxxxxxx> wrote:

> LEGO MindstormのpbFORTHを秋月 H8/3664にポーテリングしました
> 
> 「C言語の10倍の開発効率」というたい文句はまゆつばとしても
> なかなか使い勝手が良いようです

なつかしいですね。

むかし、FIG (Forth Interest Group)の会員でした。
http://www.forth.org/

FORTH, Inc.
http://www.forth.com/
も、健在のようです。

むかし、FIG Forthを富士通FM-8に移植して、
さらに、社内製作の6809 boardにもportしました。

開発環境が、製品に備わっているので、
Terminalさえあれば、現場でDebugや、
機能追加ができるのは、
当時販売されていた「開発設備」が、
相当高価だったころなので、かなり重宝しました。

でも、自分で定義した"word"を次々に入れ子して、
さらに新しい"word"を作っていくのが、
基本的なFORTHプログラミングなので、
最初の方に定義した"word"にbugが入り込むと、
bugが、「雪だるま」のように、自己増殖してしまうのと、
プログラミングスタイルが「自由過ぎ」で、
後になると、自分で定義した"word"を読み返すのも、
結構手間がかかると言うか、
可読性が自業自得でだんだん悪くなっていく欠点があり、
一人で開発しているうちはまだしも、
コラボレーションになると致命的です。

すでに誰かが作った"word"があるのに、
機能的には等価な、別の"word"を書いてしまい、
さらに、それらが混在した"word"が増殖すると言う、
悪循環になり、大規模プロジェクトになると、
破綻すると言う宿命が内在していると感じました。

でも、ちょっとした実験とか、
一人で作る小規模な開発には、
インタープリタの強みが発揮され、
チョコっと書いては、試験し、
さらにチョコっと書き加えてはまた試す、
といったサイクルを、コンパイルしてdownloadして、
とういう面倒で時間がかかる作業なしに、
積み重ねられるメリットは、
0.5 MIPSにも満たない貧弱な環境では、
大変効率的で、そういった意味では、
「C言語の10倍の開発効率」も、
当時では、あながち誇張ではなかったように思います。

今でも、FORTHはPostScriptという「方言のひとつ」に、
変身し、生き残っていると、私は思うのですが...

特に、VC++など、Visual Studioで、
紙に正確な描写をするのは、結構面倒なので、
手でPostScriptを書いて、Adobe Acrobat Distillerに、
食わせるという、方法を結構使ってます。

社内で、可変部分があるラベルを作るときは、
AutoCADで元絵を書き、Illustratorで、
Level 1のPostScriptを吐かせ、
可変部分を使うはずのない文字列にしておき、
VC++をGUIにして、その可変部分を入力してもらい、
その文字列を所定の文字で置き換えて、
Acrobat SDKを使って、Distiller->Acrobatと、
自動的にPDFを作成して紙に出すプロセスを通すので、
「毎日」使ってます (^^;

まあ、そういういんちきじゃなくって、
本当に手で書いたPostScriptを、
https://sourceforge.jp/projects/colorchart/
http://www.research.co.jp/software/gradpaper/
などで公開してますので興味がある方は、ご覧ください。

C, VB, VC++, Javaと言った言語だけでなく、
LISP, PostScript, Prologのように、
習得にParadigm shiftを必要とする言語を、
かじっておくと、実際にそれら言語を、
使う機会はなかったとしても、
「発想の転換」をする訓練になり、
それが間接的であっても、
開発業務にかかわる技術者として、
多分役に立つと思います。

-- mac
スレッド概略
[3936(R)](起点)
 └[4008(U)]
   └[表示中]
     └[4010(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]