コンピュータ言語言論
(あるいはコンピュータ言語原論)
ALGOL(Algol60,Algol68など)で考えること
こんなに古いコンピュータ言語なのに、私自身気になってしょうがなかった。どういう理由なのか、現在(いま)と変わらない不変なものを考えてしまう。
プログラムをコーディングするとき変数を使う。
・静的変数
・動的変数
・グローバル変数
相変わらずいちいち変数を宣言してやりたいことを記述していく。
それがどうした。コンピュータ言語はそういうものでしょう。
しかし、変数を使ってメモリの番地に格納するのは、1960年代からずっと続いている。
うまく表現できないが、もっと自由にプログラムが書けるようにならないのだろうか。
64ビットのメモリ番地を全部記憶して、これはコレ、あれはアレというようにプログラムは書かない。
変数を使うことでプログラムが実現できる。コンパイラがしていること、このこと自体が自分では「人工知能」と思う。
私の狭い思考では、コンパイラ-イコール-人工知能と考えている(ぐらいだ)。
(もっと言うと、難しいことは他人まかせが人工知能と考えている。)
このように考える理由と根拠を説明していきます。
「アルゴル・プログラミング入門 中村慶一著」(昭和43年)
著者は建設省勤務の工学博士
説明のため著作の記述を引用しています。
防潮堤の図面
護岸工事で現在でも同じ設計をしているだろう。
Algol60で建築・土木を説明した本が1968年に出版されている。
1968年を起点として技術の向上を考えてみると津波を検知して自動で壁がせり上がる。数十年の未来にある技術は、それぐらい出来ていないといけない(と思う)。技術的にできることをしないのは、技術者の怠慢だろうか。
本の内容を一部転記すると、以下のようなことが書かれている。
重力式コンクリート擁壁の自動設計
高さH,全面こう配N(Hに対する比率),土圧係数C,土の重量Wなどのデータを読み込み変数およびコンクリート重量2350kg/㎥ サーチャージ20t荷重を土の厚さに換算し,0.75m土の重量1800kg/㎥,コンクリートと土の摩擦係数0.5を用い,
1. 合力の作用点が中央1/3を超えたとき
2. 擁壁内部で1kg/㎠以上の引張応力を生じたとき
3. 滑動安全率が2.0以下のとき
4. 転倒安全率が1.5以下のとき
5. キイ部のせん断応力が5kg/㎠を超えたとき自動的に断面を5cmずつ増して1~5の条件をすべて満足するまで計算を繰り返し,設計に必要な数値を印字させる。土圧係数は,0.28,0.33,0.4の3種とする。
シナリオを描いてコーディングをする。昔からそうしている。
この本のAlgolプログラムには土圧,モーメント,合力の作用点など変数の内容が書かれている。
設定する変数と内容、プログラムが長くて転載できない。
言語はAlgolだが、コンクリート防壁の設計は同じことをしていると思うので、専門書を参考にしてください。
10.4 土の分類
砂(sand SA),シルト(silt SI),粘土(clay CL)の混合割合により図-10.8のように分類される。たとえば、SA:SI:CL =56:12:32 ならば6番(sandy clay loam)と分類されることになる。
PERT
情報処理試験に出題されるアルゴリズムの擬似言語のようで、昔のコンピュータ言語と感じがしない。
それに、PERTは現在でも出題されている。