- ベストアンサー
VBAの構造
VBAはアメリカで開発されたのだと想像してます。もしそうだとすれば、英語の命令文の構造では、動詞が目的語の前に置かれるのに対して、VBAでは、例えば、 Range("A1").Select のように、目的語が動詞の前に置かれる構造になっており、英語の構造と異なっているのは、どういう理由からなのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
一般のプログラム言語のことを「高級言語」と呼びます。 高級言語は自然言語に近いとよく言われるんですが、実際にはそんなことはありません(^_^; Cなんか英語の文法にはまったくなっていません。 なぜなら、純粋に鬱陶しいからです。 たとえばCOBOLというレポート生成言語があるんですが、あの言語は「仕様書がそのままプログラムになる」というコンセプトの関係上、極めて自然言語に近い文法になっています。 ……書くのすげー面倒です(^_^; 単語の省略ができないので、文字を打つ手が疲れるんですよ(笑) あんな面倒くさい言語をプログラムし続けなきゃいけないとしたら、俺だったら1週間で気が狂いますね。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
オブジェクト指向言語と言いますから、オブジェクトやデータを重要視して前に持ってきたのではないでしょうか。 あるいは逆ポーランド記法の流れを汲むとか。膠着言語に興味がある外国人が開発者に居たとか(どこにもこの説明は見たことがありませんので妄想かも)。 ただC言語の構造体から発展したのなら、オブジェクト.メソッドと表現されるのは自然に受け入れていましたが、疑問を持たれるのは自然ですね。
お礼
お答えありがとうございます。
- 100Gold
- ベストアンサー率27% (284/1018)
英語を含めた自然言語は解釈にある程度幅がありますが、プログラミング言語の性質上厳密に解釈できる必要性がありますし、処理を高速に行うためにも言語の構造が厳密である必要があるためです。 結果として、VBAは階層構造になっていて、どこにどのようなメソッドやプロパティが配置できるか決まっているので、「.」を打つと可能なメソッドが一覧表示されるような補助ツールも実装できているのです。
お礼
早速ご回答いただき、ありがとうございます。 「自然言語は解釈にある程度幅がありますが、プログラミング言語の性質上厳密に解釈できる必要性がありますし、処理を高速に行うためにも言語の構造が厳密である必要があるためです」というご説明に、全くの素人ながら説得力を感じました。
お礼
ご回答ありがとうございます。 専門家の方々も、それぞれご苦労なされているのですね。 素人ながら、自然言語と異なり、プログラム言語では一旦設定すると、変更が効かず、色々な欠点が目に付いてきて、より良いと思われる別の言語を開発ないし使用せざるを得なくなるのだという弁証法的な状況を想像しています。