[H8-ML(4911)] Re: C言語かアセンブラか?
From: 加藤 万年 <kazutoshi_kato@xxxxxxxxx>
Date: 2004年07月20日(火)23時24分56秒
こんばんわ。
興味ある話題なので、初めて投稿させて頂きます。

私は主に工業用計測機器の制御プログラムを作ってきた40歳の元プログラマです。
今は趣味の範囲でH8を遊んでいます。

かつてコンパイラは高価なもので、その反面生成するコードは冗長であり、私が
与えられた仕事にはとても使えるものではありませんでした。

なので、演算パッケージから組込用OS(または単なるメインルーチン)まで全部
自作しました。その為、最初の頃は、一つの仕事が終わるたびにドキュメントの
作成に追われていました。しかし、同じCPUで同じ演算精度の処理で済むなら、
過去の資産が使えるわけで、仕事を重ねれば重ねるほど、資産が増え、プログラ
ム作成時間もドキュメント作成時間も短縮できました。

現在は組込向けCPUの速度も上がり、更にコンパイラも安価で、しかも最適化も
問題ないところまでできるようになりました。

しかしPC用のコンパイラと比べ、組込用CPUのコンパイラは方言が多く、リリー
スごとによっても異なる点があったり、場合によってはANSI準拠も怪しいものが
あり、これが思わぬバグを呼び、困窮することも多かったです。もちろん、何回
も同じ環境で仕事を重ねていけば、これらの差異も吸収できますが、一発ものの
場合は大変でした。

私にとってCPUごとに異なるアーキテクチャーを理解するより、このコンパイラ
の差を理解する方が大変でした。これは私の頭が堅いだけかもしれませんがね。
ですので、発注側の特別の指定がなかったり、CPUがPCコンパチでない場合は、
ほとんどアセンブラで書いてきました。

で、以前新人を相手にして感じたのが、当たり前といえば当たり前なのですが、
みんなPC上のプログラムしか組めません。バイナリーの四則演算のアルゴリズム
も知らないのが当然のようでした。

なので、当時私は新人教育の一環として必ずZ80をターゲットとした4バイト精
度の四則演算を行うプログラムをアセンブラで作らせました。このプログラムが
きちんと組めるようになれば、他への応用はいくらでもできると思ったからです。
また、これができるようになるとC言語上でのビット演算も無駄なく書けるよう
になりました。

ということで、Isseiさんの問いかけへの直接の回答とはなっておりません
が、受注側の一人として、感じたことを書かせて頂きました。


マタギ

スレッド概略
[4903(R)](起点)
 └[表示中]


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


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