C言語のトークンとは?種類と基本構成要素をサンプルコード付きで解説
C言語のプログラムは命令文(ステートメント)の集まりであり、さらにその命令文一つひとつは、より小さな単位の集合によって構成されています。
このように、Cプログラムを構成する個々の小さな単位のことを「トークン(token)」と呼びます。つまり、Cプログラム内のすべての命令文は、複数のトークンが集まってできているということです。
トークンはCプログラムを作り上げるための材料であり、「プログラムの基本的な構成要素(ビルディングブロック)」とも表現されます。
Cプログラムにおけるトークンの種類
Cプログラムの中で扱われるトークンには、主に以下の7種類があります。
- キーワード(予約語):int、if、for、return など、C言語自体が特別な意味を持たせている語
- 識別子:変数名や関数名など、プログラマが自由に定義できる名前
- 演算子:+、-、*、/ など、計算や比較を行うための記号
- 特殊記号:; 、{ } 、( ) など、文法上の役割を持つ記号
- 定数:10 や 3.14 のような、プログラム中で値が変わらない固定値
- 文字列:"Hello" のようにダブルクォートで囲まれた文字の並び
- データ値:プログラム内で実際に扱われる具体的な値
これらのキーワード・識別子・演算子・特殊記号・定数・文字列・データ値をすべて合わせたものが「トークン」です。コンパイラはソースコードをこのトークン単位に分解しながら解析を行っているため、トークンの理解はC言語学習の第一歩と言えます。
サンプルプログラム
それでは、実際のコードを見てみましょう。次のCプログラムは、ASCIIコード65〜90に対応する大文字アルファベット(A〜Z)を一覧表示するものです。
#include<stdio.h>
#include<conio.h>
int main(){
int i;
printf("ASCII ==> Character\n");
for(i = 65; i <= 90; i++)
printf("%d ==> %c\n", i, i);
return 0;
}この短いプログラムの中にも、多くのトークンが含まれています。たとえば #include や int、for、return はキーワード、変数名の i や関数名の main・printf は識別子、<= や ++ は演算子、セミコロン(;)や波括弧({ })は特殊記号、65 や 90 は定数、"ASCII ==> Character\n" は文字列に該当します。
実行結果
上記のプログラムをコンパイルして実行すると、次のような出力が得られます。
ASCII ==> alphabet Character 65 ==> A 66 ==> B 67 ==> C 68 ==> D 69 ==> E 70 ==> F 71 ==> G 72 ==> H 73 ==> I 74 ==> J 75 ==> K 76 ==> L 77 ==> M 78 ==> N 79 ==> O 80 ==> P 81 ==> Q 82 ==> R 83 ==> S 84 ==> T 85 ==> U 86 ==> V 87 ==> W 88 ==> X 89 ==> Y 90 ==> Z
このように、ASCIIコードの65から90までを順番に整数(%d)として出力しながら、同じ値を文字(%c)としても出力することで、A〜Zの一覧を表示しています。身近なサンプルコードを通して「どこにトークンがあるのか」を意識してみると、C言語の構造への理解がぐっと深まるでしょう。
-
C言語のトークンとは?6つの種類とサンプルコードでわかりやすく解説
トークンとはトークン(token)とは、コンパイラにとって意味を持つ、プログラムを構成する最小単位のことです。コンパイラはソースコードをこの最小単位へと分割し、生成されたトークンを基にコンパイルの各段階へと処理を進めていきます。トークンの種類C言語のトークンは、主に以下の6種類に分類されます。キーワード(予約語):int、return など、言語仕様によって意味が定められた語識別子:変数名や関数名など、開発者が自由に命名できる名前定数:10、3.14 など、プログラム中で値が変わらない固定値文字列:ダブルクォート( )で囲まれた文字の並び特殊記号:{ }、( )、; など、構文を区切るための記
-
C#のカスタム例外とは?ユーザー定義例外の作成方法を実例で解説
他のプログラミング言語と同様に、C#でも独自の例外クラス(ユーザー定義例外)を簡単に作成できます。ユーザー定義例外クラスは、標準ライブラリの Exception クラスを継承して定義します。このように開発者が独自に定義した例外のことをカスタム例外と呼びます。カスタム例外が必要な理由.NETには数多くの組み込み例外(NullReferenceException や ArgumentException など)が用意されていますが、アプリケーション固有のエラー状態を表現したい場合には、カスタム例外を作成するのが適切です。たとえば「温度がゼロであること」をエラーとして扱いたい場合など、ビジネスロジック