想い出日記「BASICに構造化コマンド追加」
BASICが、非構造化言語といわれた理由は、1:GOTOコマンドがある、2:構造化コマンドが少ない です。
1:については、なかなか変わらなかったですが、2:は次第に構造化コマンドが追加されました。
簡単に言えば、「for : next 」コマンド自体は閉じた構造化可能なコマンドです。しかし基本的にそれ以外がありません。
「if :then」コマンドが多用されますが、これが1:GOTOコマンドと密接に繋がり非構造化になりやすい。
構造化コマンドを追加しても、その中に1:GOTOコマンドを使用してなおかつループの外に飛び出せば非構造化になります。
しかし、プログラム時に意識して1:GOTOコマンドを使用しない様に、プログラムを書く下地が出来つつありました。
構造化言語は、その後の再帰モジュール・プログラムを書く上で必要な事も浸透しつつありました。(2009/06/06)
想い出日記「アルゴリズム検証のためのインタプリタ言語」
次々に新しい言語が登場しても、多くの人は慣れたプログラム言語が一番分かり易いです。
最終的には、実用的な速さや機能を持つ言語でプログラム製作するとしても、新しいアルゴリズムの動作確認は、コーディング ミスの少ない慣れた言語で行った方がミスが直ぐに分かり、まわり道のようで結果的に早く正確に出来る時期があります。
それとコンパイラには、未完成プログラムの暴走という問題があります。
最悪はシステムの一部破損を起こす可能性もあります。
デバッガに慣れた人は問題はないと思いますが、インタプリタで動作確認は有効な手段です。
OSの進歩で暴走が回避しやすくなったり、コンパイラ自身に自己診断的な機能が持つようになったりするのはしばらく先になります。
その中間に、インタプリタ・コンパイラが登場しますが、それ以前はインタプリタ言語での検証代用時期がありました。(2009/06/13)
想い出日記「新外部機器対応プログラム言語」
パソコンのハードの進化は、本体部のみならず外部接続機器も進化します。初期のプログラム言語はインプット・アウトプットのみ で、その後は個別対応でした。
BASIC言語全盛期には、パソコンメーカーが機種ごとに対応ルーチンを加えていました。
そしていよいよ、OS・DOSの登場です。基本は、これらのシステム部のルーチンを利用して外部と接続です。
ただ速度や特殊な処理が必要な場合は、ダイレクトで接続するプログラムが機器に付属していました。ただこの附近から、プログラム 人口が減少して、アプリケーションの使用のみのユーザーが増加しました。正確には新規利用者は、アプリケーション利用者です。
プログラム言語も外部機器との接続に対応する設計になりました。
本体プログラムとサブルーチンの呼び出しのみで、例えばコンパイル・リンカー作業をすると外部機器用のルーチンがリンクされます。
プログラム制作者的には、そんなに変わっていない様に設計されていますが、それでもプログラム製作は減りました。(2009/06/20)
想い出日記「言語変換」
コンパイラは、非機械語を機械語に変換する言語です。その中には、変換が中間言語の場合もあります。
変換がダイレクトに実行される必要はありません。速度面では優位が予想できますが・・・・。
コンパイラ言語が、「パスカル」系統等が増えて来た時にはあまり意識しませんでしたが、「C」や「ジャバ」等が増えて来ると 機械語にかなり近くなり、高級言語のイメージが薄れます。
それならば、慣れた高級言語を「C」や「ジャバ」等に一度変換するコンパイラを作る方法があります。
変換したあとは、機械語までコンパイルする事が可能ですから、途中下車だけです。
初心者向けとされそうですが、プログラム言語の習得時間と暴走対策とを考えると、かなり需要はあります。
かくて、BASICからC言語に変換する方法も登場したのです。(2009/06/27)
機械語に浸り、ミニ言語に熱中した時期
BASIC言語が、ソフトの中心だった時期
アプリケーションソフトの登場でプログラムから離脱