なぜプログラムは無理でもExcelなら使えるのか
2008.03.02 Sunday 23:57
世の中IT技術者多しといえどもコンピュータプログラムを作れる人は総人口から見れば多数派では無いだろう.でもExcelの計算式なら何とか作れる人はもうちょっといると思う.(プログラムが作れてExcel計算式が理解できない人は稀かな?)
その理由をちょっと考えてみた.
その理由をちょっと考えてみた.
Excelで各セルに値と計算式を入れ,求める結果が所定のセルに出るように作る.(印刷など表示上の都合で行ごと隠すことはあるが)入力データを決めれば,途中経過と結果のセルの値は一意に決まる.
これは各セルを変数と考えたら,変数の値は一回セットしたら書き換えられないと考えられる.(入力セルの書き換えは,別の入力データで新しくプログラムを走らせると考える) 計算式の循環参照は許されないので,計算順序は結果に影響しない.
それに対して,一般のプログラムでは上から順に実行されてその順序が結果に影響する.ということは1ステップごとに内部状態が更新されると考えることができる.だから作るときは,最終結果を一次元にばらして,テレビの走査線のように走査したり,途中の状態を書き出したりすることが必要となる.
一般的に言って内部状態遷移が無く記述したものが結果と1:1に対応する物の方が理解しやすいと思う.Excelシート以外にHTML, SQL, WYSIWIGの画面設計ツール,WPF, XULといったものがこの部類に入るだろう.
ところで,Erlangという(関数型)言語では変数の書き換えを許していない.X=5と書いたらその書き換えは許されず,それ以降Xは5という定数と同じ意味に解釈される.Y=XはY=5と同義で,X=3は5=3となるのでエラーとなる.これはExcel並に簡単か?と思いそうだが,再帰呼び出しが可能なのでそう簡単ではない.ただ,無限のセルを持った表をイメージすれば普通の手続き型プログラムよりはわかりやすい...かどうかは微妙... 手続き型言語でも変数の再利用を無くしてn回目は x_nという変数を使うようにすれば同じか??他のHaskellとかOCamlとかの関数型言語は知らない.
要するにErlangって言ってみたかっただけ.すいません.
これは各セルを変数と考えたら,変数の値は一回セットしたら書き換えられないと考えられる.(入力セルの書き換えは,別の入力データで新しくプログラムを走らせると考える) 計算式の循環参照は許されないので,計算順序は結果に影響しない.
それに対して,一般のプログラムでは上から順に実行されてその順序が結果に影響する.ということは1ステップごとに内部状態が更新されると考えることができる.だから作るときは,最終結果を一次元にばらして,テレビの走査線のように走査したり,途中の状態を書き出したりすることが必要となる.
一般的に言って内部状態遷移が無く記述したものが結果と1:1に対応する物の方が理解しやすいと思う.Excelシート以外にHTML, SQL, WYSIWIGの画面設計ツール,WPF, XULといったものがこの部類に入るだろう.
ところで,Erlangという(関数型)言語では変数の書き換えを許していない.X=5と書いたらその書き換えは許されず,それ以降Xは5という定数と同じ意味に解釈される.Y=XはY=5と同義で,X=3は5=3となるのでエラーとなる.これはExcel並に簡単か?と思いそうだが,再帰呼び出しが可能なのでそう簡単ではない.ただ,無限のセルを持った表をイメージすれば普通の手続き型プログラムよりはわかりやすい...かどうかは微妙... 手続き型言語でも変数の再利用を無くしてn回目は x_nという変数を使うようにすれば同じか??他のHaskellとかOCamlとかの関数型言語は知らない.
要するにErlangって言ってみたかっただけ.すいません.
Comments