![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
はじめまして
私達がその昔プログラムを勉強した50年近く前のとき(FORTRAN、COBOL、BASIC)は、プログラムは大文字のみで書かれていました。ところが現在ではCをはじめVB、Javaなど、大文字と小文字が普通に混在しています。ですので私なんかの感覚で言えば非常にわかりにくく感じます。
昔はメモリの問題があったので少しでも節約しようということで大文字だけだったと思うのですが、でもなぜわざわざ混在させるのか理解に苦しみます。先頭だけではなく単語の中に普通に大文字がはいったりしています。
なぜこのように大文字、小文字を混在させるのでしょう?
お暇なときにご回答いただければ幸いです。
No.6ベストアンサー
- 回答日時:
> 昔はメモリの問題があったので少しでも節約しようということで大文字だけだったと思う
それだけではなく、モニタの解像度が飛躍的に上がった、ってのが大きいでしょうね。
例えばApple IIの高解像度モードでさえ280ドット×192ドットです。こんな状態では「視認性が良い」フォントをでっち上げると大文字しかあり得ないんですよ。
日本の昔のNEC PC-6001なんかでも「カタカナが主流だった」ってのと理由は似ています。少ないドット数で「視認性が良い」文字をでっち上げるとしたらカタカナの方が有利だった、ってのと似ていますね。
今や1920ドット × 1080ドット辺りが出てきて、かつての40倍くらいの解像度ですし、今後もっと解像度が増えるでしょう。
それだけ「(色々と表現上)便利になってる」って事なんですよ。
> プログラムは大文字のみで書かれていました
うーん、FORTRAN、COBOL、BASIC等の言語の詳細仕様は分からないんですが、現行のプログラミング言語だと大体仕様上、
・CASE SENSITIVE
・CASE INSENSITIVE
の二種類があると思います。
CASE SENSITIVEってのは「大文字・小文字を区別する」、CASE INSENSITIVEってのは「大文字・小文字を区別しない」プログラミング言語の事ですね。
つまり、例えば関数名として
GOO、Goo、gOO
と三種類定義しようとした場合、これらは全部「別の関数である」って認識してくれるのがCASE SENSITIVEな言語、3つとも「同じ」だとして名前空間上で衝突するのが「CASE INSENSITIVE」な言語です。
つまり、実は(現行の)殆どのプログラミング言語だと、内部的には「大文字だけで書かなければならない」とか「小文字だけで書かなければならない」と言うよりも、Aとaを同じとみなすか、あるいは別として扱うか、で分かれてるんです。
従って、「大文字だけ」「小文字だけ」等と言う区別は無意味ですね。
CASE SENSITIVEな言語の代表格がC言語やJavaになります。一方、CASE INSENSITIVEな言語だと代表的なのがPascal、Common Lispで恐らく現代のFortranも「CASE INSENSITIVE」なだけで、言い換えると「小文字だけでプログラムを書く」のは大丈夫、って仕様になってるんじゃないでしょうか(知らんですが・笑)。
そしてISOのFullBasicも「恐らく」ですが、CASE INSENSITIVEなプログラミング言語なだけであって、別に「大文字だけでプログラムを書かないと認識出来ない」と言ったような仕様ではないのではないか、と思います。
まとめると、「大文字だけでプログラムを書きたいんじゃぁ!」とか言うのは現行のプログラミング言語でも全然不可能ではありませんので、仕様上CASE INSENSITIVEな言語ないしは言語処理系を選んで、大文字だけでプログラム書いても誰も文句は言わないでしょう(仕事じゃなければ)。
結局この手の言語(さきほど挙げたPascalなんかでも)でも大文字小文字混在でプログラムは書けますが、コンパイラの動作としては大文字のAと小文字のaを「全く同じとしてみなす」ので、まあ、自分のやりやすいようになったらイイのでは、とは思います。
早速のご回答ありがとうございます。
そうなんでしょうね、全部大文字で書いても良いのでしょうが、あとからいっぱい文句をいわれそうで…
解像度の問題は気がつかなかったです。
そういえば、ディスプレイに漢字が表示されたのをみて感激したことを思い出しました。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_15.png?5a7ff87)
No.7
- 回答日時:
うんと昔になると、変数名の長さ制限も厳しかったんじゃないですか?その頃の変数名って1文字とか略語だから、小文字を使えることが嬉しくはないはず。
それに端末にテレタイプを使う神代の時代からある言語だと、文字コードが5bitだから小文字を使いたくてもなかったという事情があり、それに合わせて言語系を設計する必要がありますよね。でも短文をそのまま使ったような長い変数名でも受け入れ可能になった昨今、全部大文字だったら暗号になっちゃうじゃないですか。なので複数の単語をつなげたような変数名では、単語の切れ目を大文字にすることで読みやすくなりますよね。また定数は全部大文字で書くなどし、大文字小文字に意味を持たせることもできます。
なのでその問いには、
「自然言語に大文字小文字があって使い分けており、プログラミング言語も命令語は自然言語から取り入れているのに、大文字しか使っちゃいけないというのはおかしいと思いませんか?」
と返しておきます。
早速のご回答ありがとうございます。
私達の時代の感覚でいえば、「小文字を使えることが嬉しくないはず」なことはないんですね。
また、全部大文字でも暗号にもならないのです。このあたりは時代の差でしょうか。
ご教示ありがとうございました。
No.3
- 回答日時:
中学の時にNHK教育のFORTRAN講座でソフトウェア開発言語というものを始めて学び、大学ではCOBOL、FORTRAN、BASICを使って課題(数値解析とか習熟とかABC分析とかいったことをし)を解き、就職後はシステム開発のお仕事で汎用機のアセンブラー、C言語。
UNIX系になってC言語の他にPrologやLISP系の言語、C++。パソコンが主流になってVB、Excelをフロントエンドに置くためVBA。C#もちょっと。。。 90年代にインターネットが民用に開放されるとHTML、Perl、Ruby、PHP、Javascript、最後の方ではJavaもかなり使いました。小文字を使うようになったのはC言語あたりからでしょうか。個人的にC言語を使い始めたのは1980年代の中ごろ、汎用機(IBM互換機)からですが、C言語の登場は1970年代前半ですね。ただ、ASCIIコードの成立は1960年代前半だったように思いますので、そのころから対応した言語はあったのかもしれません。
あ! 確かB言語が小文字ですね。ということはDECのPDP-7でのUNIX開発あたりからですか。つまり1970年代初頭か1960年代の終わりくらいなのかな?
小文字が使える事で自然言語に近い感覚で読め、また、途中に大文字が入る場合はその前を前置詞的に読むことが出来きたり、「○○の××」といった説明的な意味あいを持った命名が出来てわかりやすく、個人的にはとてもよいと感じています。
参考まで。
早速のご回答ありがとうございます。
アセンブラーまでやってられたのですね、
たしかにC言語あたりから小文字が当り前になってきたようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(言語学・言語) この暗号解読を手伝ってくださいませんか? 5 2023/01/05 22:00
- Excel(エクセル) セルに入力した小文字アルファベット、数字を大文字表示させるには? 3 2022/07/13 10:01
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) エクセルで文字列と数字が混在する列に書式設定したい。 3 2022/12/19 09:11
- 高校 数学Aの問題です。 下記2パーンのとき、それぞれ何通りありますか? ①アルファベット大文字小文字のい 3 2023/02/08 16:32
- Perl perlについての質問 2 2022/10/17 15:25
- 画像編集・動画編集・音楽編集 文字等を拡大して印刷するときに生じるかもしれない問題について 3 2023/01/05 04:07
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- 教育・学習 英語の事で質問です。 今Androidスマホでローソンアプリに登録中なのですが、 パスワードの説明文 3 2023/06/24 07:59
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
VBSとWSHは読み方が違うだけで...
-
プログラムに書かれる"%"記号の...
-
vbaとc言語の関連性について
-
dbMAGIC業界の今後
-
COBOLで文字タイプを数字...
-
TO_CHARで小数点以下がある場合...
-
C言語とhtmlの違いを どな...
-
【Cか】ノベルゲーム【Jav...
-
COBOLでのNOT = の AND条件
-
UNITY Float型の接尾辞fって
-
C++ ってなんて読む?
-
VBってもしかして難しいんですか?
-
新しいプログラムには、何故COB...
-
TANDEM言語ってあるんですか?
-
PL/Iソースからのコメント部分削除
-
FAの設計の仕事について
-
C#とC++のざっくりとした違いを...
-
HTMLとC++で、どんなホームペー...
-
プログラミングは1つの言語を覚...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
プログラムに書かれる"%"記号の...
-
C言語とhtmlの違いを どな...
-
COBOLでのNOT = の AND条件
-
楽しくて最高のプログラミング...
-
Pythonって何を意識した言語な...
-
C#とC++とJavaが学べる書籍につ...
-
rpa化する言語としてら何があり...
-
最新のプログラム言語を学ぶに...
-
COBOLで文字タイプを数字...
-
質問失礼します。 プログラム言...
-
UNITY Float型の接尾辞fって
-
C++における継続行
-
TO_CHARで小数点以下がある場合...
-
C++ ってなんて読む?
-
VBSでDim、Private、Publicの違い
-
VBScriptで引数を省略したい場合
-
vbaとc言語の関連性について
-
VCとVC++
-
Excel VBAで文字化けする (英語...
おすすめ情報
つまらない質問であったのに、短時間にもかかわらず、多くのご回答ありがとうございます。大文字小文字を混在させている理由がすこしわかったような気がします。ご回答いただいたみなさん、ありがとうございました。