リテラル

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

リテラル: literal)は、「文字どおり」「字義どおり」を意味する語で、letter と同じくラテン語littera文字)に由来する。数理論理学とコンピュータプログラミングで異なる意味の学術用語として使われる。

数理論理学[編集]

リテラルとは、数理論理学において、原子論理式あるいは原子論理式の否定のこと。

基礎リテラルとは、リテラルのうち、変数を含んでいないものを指す。

共通な変数を持たない2つの節に対して、節のそれぞれのリテラルで使って再汎単一化要素をもち、二次元導出系 (: binary resolvant) を作る場合に導出に使われたリテラル (: literal resolved upon) と呼ぶ。共通の変数を含まない2つの節で、推論した節の二次元等号調整系 (: binary paramodulant) を作ったとき、等号調整に使われたリテラル (: literal paramodulated upon) という。

コンピュータプログラミング[編集]

コンピュータプログラミング言語においてリテラルは、ソースコード内にを直接表記したものをいう。言語によってリテラルとして表記できるの種類や表記方法は異なる。簡略に記述できることが好まれるスクリプティング言語はリテラルの種類が多い傾向にある。リテラル表記ができるかどうかはその型が第一級オブジェクトかどうかを検討する材料である。静的に構文解析が可能なことが多いためシンタックスハイライトではたいてい色分けされる。

一例を挙げる。言語によっては当てはまらない場合もある。

数値
整数、浮動小数点数はほとんどの言語でサポートされる。他にも固定小数点、複素数、実数、分数などに対応する言語がある。
同じ種類のリテラルに対応していても言語ごとに機能面で違いがある。
  • 2進法、8進法、16進法で表記できるか。また、その表記法。
  • 0.1F のように型を明示するためのサフィックスがあるか
  • 0.1.1 と整数部を省略して書けるか
  • 数値の間に _ を挟めるか
など
文字型
'A'のようにシングルクォートで文字を挟み、エスケープシーケンスが使える場合が多い。ASCIIUnicodeの1文字を表すものがある。Scheme では #\A#\newline などのような記法である。SGML などでは λዀ などのような記法である。
文字コードを表すと考えて、数値型に含める場合もある。
文字列型
"string"のようにダブルクォートや、シングルクォートで文字列を囲む場合が多いが、一つの言語に複数の記述法があり、特殊な記法が用意される場合もある。その際にはエスケープシーケンスの処理を行うか、式展開を行うか、文字列の終わりの解釈などがそれぞれ異なる。
また、改行ホワイトスペースをそのまま反映する文字列の記法をヒアドキュメントと呼ぶ。
関数
無名関数を表現する。クラスなどに関数が定義できるだけでは関数リテラルとはみなされない。
同様の機能であっても関数リテラルと呼ばない言語もある。第一級関数も参照。
正規表現
/regex/のようにスラッシュで挟む。「大文字小文字を区別しない」オプションが後ろ付けられる場合もある。
配列
[1,2,3]のようにブラケットで囲む場合が多い。
連想配列 (オブジェクト、オブジェクトリテラル)
{"hoge":1 , "piyo":2}のような書き方が一例。JavaScriptのオブジェクト表記法からJSONが発見された。
空値
nullnil
真偽値
false/true#f/#t
記号
'symbol:symbol
ベクター
#(1.2 3.4 cat)Scheme での例)
範囲
[1, 8)Synopsys IC ValidatorPXL 言語での例)

[編集]

下のコードで、7や"hello"がリテラルである。

int x = 7;
string s = "hello";

参考文献[編集]

  • コンピュータ定理の証明、日本コンピュータ協会、Chin-Liang Chang, Richard Char-Tung Lee

関連項目[編集]