こちらの記事でコンピュータのハードウェア中心に触れてきました。進化の一端が伺えます。


今回はコンピュータ言語を遡ってみて、その時代の流行言語に触れてみます。


初めて携わったのはミニコンピュータを使ったロボットの制御です。



使用言語は、ロボットの軌道計算に向いた FORTRAN Ⅳ とインタフェース経由で機械を制御するアセンブリ言語です。
学校で習った制御理論や、物理の位置・速度・加速度・距離の公式がふんだんに出てきていた。

防塵対策された専用の部屋が必要で持ち運びできる代物ではなかったが、基盤にOSが組み込まれた製品が発売されると総取換えした。



趣味では、富士通の FM7 と周辺機器、BASICやアセンブラ(アセンブリ言語を機械語に変換プログラム)を購入して遊んでいた。


フロッピーディスクを知っている方は多いですが、カセットテープにプログラムを保存する方法は、購入してはじめて知った。



マイクロプロセッサー全盛となるとボードコンピュータでロボットを制御することになっていく。


上記はイン・サーキット・エミュレータと呼ばれる装置で、特定のマイコンを代替し、ブレークポイントの設定やステップ実行ができる一種のデバグ装置です。

消去可能な EEPROM にプログラムを格納し、紫外線を照射すれば消すことができた。


使用言語は C言語とアセンブリ言語です。

低級言語と呼ばれ、軽いが高度な事はコーディング量を増やさないと記述できない。

ロボットにカメラを取りつけて視覚センサーとする場合は、軽さ故に高速に処理速度できる利点もあった。

そこで触れたのが、LISP 言語と OPS5 です。

コンピュータ言語でメモリ記憶を表現するために、配列や構造体などが使われます。これらはあらかじめ容量を定義しなくてはならない。
人工知能の場合は動的に可変する必要があり、リストと呼ばれる記憶方法がある。LISPはリストプロセッサの略でリストを扱うために開発された。


万能の LISP だが唯一欠点があった。メモリを動的に確保と開放を繰返すと、メモリが虫食い状態になり処理速度が低下する。

ハードディスクのデフラグ同様に、定期的にガベージコレクション(ゴミ掃除)がプログラム実行中に行われ、処理が中断してしまう。


装置にボードコンピュータを組み込んで機器を制御するには、リアルタイム性や計算式、入出力や通信制御、時間概念の導入が不可欠となります。

設計した言語とそのコンパイラ、デバッガと、生成したコードで動く推論エンジンは自身の最高傑作であった。



転職しても組み込みソフト開発に従事していたが、パソコンユーザ向けにグラフィック・ユーザ・インタフェースが要望された。

LabView と呼ぶソフトウェアで、ブロックダイアグラム書く要領でプランが書け、GUIも生成する優れ物です。



視覚的で直ぐに覚えられる言語でめーた表示やグラフ表示に長けていた。だが、複雑なプログラムや計算式が多いと苦労した。

これを卒業すると Microsoft Visual studio に移り今に至っている。