ノート:キャメルケース
「用途」セクションの文章移動について
[編集]「パスカルケースという用語はプログラミング言語のPascalにちなんで命名されたものだが、Pascalは元々大文字・小文字を区別しない言語であり、またISO規格準拠の標準Pascalでは識別子にアンダースコア_
は使えない仕様になっている[1]ということもあり、語境界を認識しやすくするために単語先頭を大文字にする慣習があった。規格の文書には標準手続き(required procedure)はwriteln
のように全て小文字で記載されているが、一部のPascal処理系の文書にはWriteLn
のようにアッパーキャメルケースが採用されているものもある[2][3]。」
この文章は元々「用途」セクションに配置されていたものですが、文章の内容は全体的な「用途」の他の説明部分と比して、この部分だけ突出して詳述が過ぎると考えます。またこの文章は「パスカルケース」についての詳述であり、本ページ「キャメルケース」で詳述するべき内容からも逸脱していると考えます。従って、この文章は「パスカルケース」ページを新たに作成し、そのページ内の他の詳述と共に記載されるべきと提案します。この提案の採用是非に関わらず、「パスカルケース」ページは数日以内に作成します。もしこの文章を本ページの「用途」セクションに戻す場合、同セクションの他の説明部分も同様に詳述度を増す必要があると考えます。
備考:「ケバブケース(チェインケース)」ページも「パスカルケース」ページ作成後に作成します。
備考:2024年7月1日「パスカルケース」ページのリダイレクトを解除し、ページ内容を追加しました。上記の文章もこちらへ移動しました。 --[[利用者:Shohei KIMURA|Shohei KIMURA]]([[利用者-会話:Shohei KIMURA|会話]])(会話) 2024年7月1日 (月) 14:51 (UTC)
元「用途」セクション、現「適用例」セクションの文章移動について
[編集](注釈のテンプレート内の参照エラーが起きるため、ここでは注釈をnowiki
としています)
「識別子とは、変数、サブルーチン、およびユーザー定義データ型などの構文要素を区別するために使用される名前を指す[4][5]。多くのプログラミング言語においては、スペースがトークン(字句)の区切りとして機能するため、識別子にスペースを含めることは許されない[6][7]。これにより、識別子には一続きの文字列が必要となる。したがって、複数の単語からなる識別子にはパスカルケース(アッパーキャメルケース)、キャメルケース(ローワーキャメルケース)、スネークケース、ケバブケース(チェインケース / チェーンケース)といった命名規則が適用され、各単語の区切りを明示する。これらの命名規則は、コードの可読性および保守性を向上させ、プログラムの構造を明確にする役割を果たしている[8][9]。一般的なプログラミング言語では、英数字の他にアンダースコア_
を使うことができるが[10][11][12]、古いCOBOLのようにアンダースコア_
は使えず、代わりにハイフンマイナス-
を使うことができるという言語もある[13][14]。また、初期のコンピュータでは、容量などの制約から大文字・小文字を区別することができず、大文字のみが使える環境が主流だった[15][16][17]。このため、BASICやPascalといった初期の言語では、大文字・小文字を区別しない仕様となっているものが多かった。C言語の場合、ANSI C(C89)規格では、保証される外部識別子名の長さは6文字まで、内部識別子名の長さは31文字までという互換性制約があった[18][19]{{efn|[[標準Cライブラリ]]の関数名が暗号のように短く分かりづらいのも、[[プログラミング言語C|K&R]]時代から続く初期の資源制約によるものである。}}。
識別子に使用可能な文字種や文字数に制限のある環境において、複合語を一つのプログラム要素としたいときには「getinputreader
」や「GETINPUTREADER
」のように直接連結するしかない場合もある。しかし、直接連結してしまうと単語境界を認識しにくく、可読性を欠いてしまう。アンダースコア_
やハイフンマイナス-
が使える環境ではこれらの文字を区切り文字として「get_input_reader
」や「GET-INPUT-READER
」などとする方法もあるが、文字数が増えてしまい、場合によっては処理系の制限に抵触してしまう。後に大文字・小文字を区別できる環境が登場し主流となり、後続の語の頭文字を大文字とし、文字数の増大を抑制しつつ、単語境界を認識しやすくする記法が考案された{{efn|ただし、キャメルケースも可読性を損うとして嫌う人もいる。例えば[[C++]]の設計者[[ビャーネ・ストロヴストルップ]]は、''“{{lang|en|I prefer to use underscores to separate words in an identifier (e.g, element_count) rather than alternatives, such as elementCount and ElementCount.}}”''と述べている<ref>{{Cite web |title=Stroustrup: C++ Style and Technique FAQ |url=https://www.stroustrup.com/bs_faq2.html#Hungarian |website=www.stroustrup.com |access-date=2024-07-13}}</ref><ref>{{Cite web |title=Stroustrup: C++ Style and Technique FAQ 日本語訳 |url=http://www.libjingu.jp/trans/bs_faq2-j.html#Hungarian |website=www.libjingu.jp |access-date=2024-07-13}}</ref>。実際に、[[標準C++ライブラリ]]には、<code>std::runtime_error</code>や<code>std::vector::push_back()</code>のように、アンダースコア<code>_</code>を使った名前が頻出する。しかし彼は、言語組み込みのデータ型や標準ライブラリのデータ型との名前衝突を避けるため、ユーザー定義のデータ型の名前は先頭を大文字にすることを推奨してもいる。}}。」
この文章は元々、元「用途」セクション、現「適用例」セクションに配置されていたものですが、文章の内容はプログラミングにおける「識別子」を説明するものであり、「キャメルケース」に限定した用途の説明を行う文章とはなっていません。従って、この文章は「識別子」ページに移動するべきと提案します。現在行っている「キャメルケース」ページの再編(見出し「命名規則一覧」にある、他種の命名規則ページと同じページ構成(章立て)への再編)にあたって、この文章は取り除き、一時的にこのノートページに保管します。余裕があれば私がこの文章を「識別子」ページに自然な形での組み込みを行いたいと考えています。
- ^ Pascal ISO/IEC 7185:1990
- ^ WriteLn | Free Pascal
- ^ WriteLn - The GNU Pascal Manual
- ^ “User Defined Data Types in C++” (英語). GeeksforGeeks (2018年10月22日). 2024年6月29日閲覧。
- ^ KathleenDollard: “User-Defined Data Type - Visual Basic” (英語). learn.microsoft.com (2021年9月15日). 2024年6月29日閲覧。
- ^ “String Tokenization in C” (英語). GeeksforGeeks (2023年10月18日). 2024年6月29日閲覧。
- ^ “Tokens” (英語). www.ibm.com. 2024年6月29日閲覧。
- ^ CodiumAI Team: “Mastering Coding Standards and Best Practices for Software Development” (英語). CodiumAI (2024年4月17日). 2024年6月29日閲覧。
- ^ Herka, Iwo (2022年2月2日). “Naming conventions in programming – a review of scientific literature — Makimo – Consultancy & Software Development Services” (英語). makimo.com. 2024年6月29日閲覧。
- ^ “Alphanumeric Characters: Uses and Examples” (英語). HowStuffWorks (2024年2月8日). 2024年6月29日閲覧。
- ^ “Underscores in Numeric Literals”. docs.oracle.com. 2024年6月29日閲覧。
- ^ “C Identifiers” (英語). GeeksforGeeks (2023年9月6日). 2024年6月29日閲覧。
- ^ “6.10 COBOLアプリケーション使用時の注意事項”. software.fujitsu.com. 2024年6月29日閲覧。
- ^ Wick, Amanda. “Research Guides: Archives and Special Collections on COBOL and the History of Programming Languages: Home” (英語). libguides.umn.edu. 2024年6月29日閲覧。
- ^ “Programming Language Statements Oddities: History and idiosyncrasies (or oddities)”. Gavilan College. 2024年6月29日閲覧。
- ^ “情報学概論Ⅰ 第4回”. www2.nagano.ac.jp. 2024年6月29日閲覧。
- ^ “古いコンピュータやOSで小文字ではなく大文字が使用されていた理由とは? - GIGAZINE”. gigazine.net (2023年12月24日). 2024年7月13日閲覧。
- ^ “Hewlett Packard Company Conformance Statement”. www.opengroup.org. 2024年6月29日閲覧。
- ^ TylerMSFT: “C Identifiers” (英語). learn.microsoft.com (2023年1月25日). 2024年7月13日閲覧。
--[[利用者:Shohei KIMURA|Shohei KIMURA]]([[利用者-会話:Shohei KIMURA|会話]])(会話) 2024年7月13日 (土) 21:32 (UTC)