パスカルケース(英: Pascal case)とは、プログラミングおよびコンピュータサイエンスの分野において、複数の単語を連結する際に使用される命名規則の一種である。この記法は、各単語の頭文字を大文字で表記し、それ以外の文字を小文字で表記するという特徴をもつ。パスカルケースは、しばしば関数名、変数名、およびクラス名の命名規則として使用される。この命名規則はPascal言語に由来しており、名称考案時にこのスタイルが普及していたことから「パスカルケース」と命名された。

パスカルケースは別名、バイキャピタライゼーション(英: bicapitalization / bi-capitalization / BiCapitalization)、インターキャプス(英: InterCaps / internal capitalization)とも呼ばれることがある。頭文字に小文字と大文字を混在させるケースはミックストケース(英: mixed-case)とも呼ばれる。一部、日本語訳してキャメル記法(きほう)、キャメル方式(ほうしき)と表現されることもある。

パスカルケースは広く普及している呼称だが、厳密には.NETの文脈で使用されるものであり、同じく並び称されるものとして「キャメルケース(英: camel case)」が存在する。パスカルケースとキャメルケースは、共に複数の単語を連結する命名規則であるが、両者には明確な違いがある。キャメルケースでは最初の単語の頭文字は小文字とし、次の単語から頭文字を大文字にする(例:camelCase)。一方、パスカルケースでは全ての単語の頭文字を大文字にする(例:PascalCase)。この違いにより、パスカルケースはキャメルケースとは異なる命名規則として認識される。

パスカルケースは、複数の単語が連結された場合でも、各単語の頭文字が大文字で示されるため、どの部分が新しい単語であるかを容易に判別することができる。これにより、プログラムコードの可読性が向上し、保守・点検を行いやすくなる。

## 歴史

### 1970年代:Pascal言語の登場

パスカルケースの起源は、1970年代に登場したプログラミング言語「Pascal」に遡ることができる。Pascal言語は、教育目的で開発され、その簡潔で構造化された文法により、プログラミングの学習および実践において広く使用された。Pascal言語の命名規則として採用されたのがパスカルケース(この時点ではまだこの呼称の定着はしていない)であり、その後、他の多くのプログラミング言語やフレームワークに影響を与えることとなった。

### 1980年代~1990年代:オブジェクト指向プログラミングの普及

1980年代から1990年代にかけて、オブジェクト指向プログラミング(OOP)の普及に伴い、パスカルケースはクラス名やオブジェクト名の命名規則として広く採用されるようになった。特に、DelphiやC++などの言語において、パスカルケース(のスタイル)はコードの可読性を高めるための重要なスタイルガイドラインとして位置付けられた。

### 2000年代初頭:.NET Frameworkの登場と「パスカルケース」の名称採用

Microsoftの.NET Frameworkが登場した2000年代初頭には、Turbo Pascalの設計者であり、.NET設計チームの主要なメンバーでもあったアンダース・ヘルスバーグが、これはPascal言語によって普及したスタイルであると提言したことにより、「パスカルケース」という名称が.NET公式の命名規則の一部として採用され、以降、多くの開発者がこれを標準的なスタイルとして受け入れるようになった。

### 現代:Java、C#、JavaScriptなどの主要プログラミング言語での広範な使用

さらに、パスカルケース(のスタイル)はJava、C#、JavaScriptなど、現代の主要なプログラミング言語においても広く使用されている。これらの言語では、特にクラス名や構造体名に対してパスカルケース(のスタイル)を使用することが推奨されており、統一された命名規則がコードの整合性と可読性を維持する上で重要な役割を果たしている。ただし、「パスカルケース」という名称は厳密には.NETの文脈で使用されるものであるため、より広範な文脈では、同じスタイルでも「アッパーキャメルケース(英: upper camel case)」という名称を使用する。

パスカルケースの普及と共に、その明確な命名規則は、多言語環境や国際的なソフトウェア開発プロジェクトにおいても、開発者間のコミュニケーションを円滑にする一助となっている。統一された命名規則の採用により、コードレビューや保守作業が効率化され、バグの発見や修正も容易になるといった利点も生じている。

## 文脈別の使い分け

先述のように、「パスカルケース」という名称は、厳密にはMicrosoftの.NET Frameworkにおける命名規則として使用される用語である。2000年代初頭に登場した.NET Frameworkは、Windowsプラットフォーム向けのアプリケーション開発を簡素化し、統一された開発環境を提供することを目的として設計された。このフレームワークにおいて、クラス名や関数名の命名規則として「パスカルケース」という用語が公式に採用され、広く認識されるようになった。

一方、より広範な文脈においては、パスカルケースと同様の命名規則を指す際に「アッパーキャメルケース(英: upper camel case)」という用語が使用される。「キャメルケース(英: camel case)」とは、単語の「境界」を大文字で区切る命名規則の総称とみなされる場合があり、そのうちの「全ての単語の頭文字を大文字にする」ものを「アッパーキャメルケース」、「最初の単語の頭文字を小文字にする」ものを「ローワーキャメルケース(英: lower camel case)」と分類する。

「アッパーキャメルケース」という用語は、特定のフレームワークや言語に依存せず、より包括的な文脈で使用可能なため、多くのプログラミング言語やフレームワークにおいて適用可能である。例えば、JavaやC++、Pythonなどの言語では、クラス名や型名に対してアッパーキャメルケースを使用することが推奨されており、これによりコードの一貫性と可読性が向上する。

## 利点

利点については、「アッパーキャメルケース」の「利点」項目で説明されている。

パスカルケースについて、利点という点でアッパーキャメルケースの利点と比較して特筆すべき点はないため、このページでは省略する。

## 欠点

欠点については、「アッパーキャメルケース」の「欠点」項目で説明されている。

パスカルケースについて、欠点という点でアッパーキャメルケースの欠点と比較して特筆すべき点はないため、このページでは省略する。

## 適用例

以下の点について以外は「アッパーキャメルケース」の「適用例」項目で説明されている。

パスカルケースについて、適用例という点でアッパーキャメルケースの適用例と比較して以下の点について以外に特筆すべき点はないため、このページでは省略する。

Pascalは元々、大文字・小文字を区別しない言語であり、またISO規格準拠の標準Pascalでは識別子にアンダースコア`_`は用いることができない仕様になっているということもあり、単語境界を認識しやすくするために単語先頭を大文字にする慣習があった。規格の文書には標準手続き(英: Required Procedure)は`writeln`(Write Ln)のように全て小文字で記載されているが、一部のPascal処理系の文書には`WriteLn`のようにアッパーキャメルケースが採用されているものもある。

## 命名規則一覧

| 名称 | 英語表記 | 説明 | 表記例 |
| --- | --- | --- | --- |
| スネークケース | snake case | 単語間をアンダースコア(`_`)で繋ぐ形式。 | `example_variable` |
| スクリーミングスネークケース | screaming snake case | 単語間をアンダースコア(`_`)で繋ぎ、全て大文字にする形式。「アッパースネークケース(upper snake case)」や「コンスタントケース(constant case)」とも呼ばれる。 | `EXAMPLE_VARIABLE` |
| キャメルケース | camel case | 各単語の頭文字を大文字にし、単語を連結する形式(最初の単語のみ頭文字が小文字)。.NETの文脈で使用。 | `exampleVariable` |
| ローワーキャメルケース | lower camel case | キャメルケースと同じ形式だが、フレームワークや言語に依存しない表現。 | `exampleVariable` |
| パスカルケース | Pascal case | 各単語の頭文字を大文字にし、単語を連結する形式(キャメルケースと似ているが、最初の単語の頭文字も大文字)。.NETの文脈で使用。 | `ExampleVariable` |
| アッパーキャメルケース | upper camel case | パスカルケースと同じ形式だが、フレームワークや言語に依存しない表現。 | `ExampleVariable` |
| ケバブケース | kebab case | 単語間をハイフン(`-`)で繋ぎ、各単語の頭文字を小文字にする形式。 「チェインケース / チェーンケース(chain case)」とも呼ばれる。 | `example-variable` |
| トレインケース | train case | 単語間をハイフン(`-`)で繋ぎ、各単語の頭文字を大文字にする形式。 | `Example-Variable` |
| ドットケース | dot case | 単語間をドット(`.`)で繋ぐ形式。 | `example.variable` |