フリーフォーマットとは
コンピュータの世界における「フリーフォーマット」とは、特定の
形式言語が、その解釈において改行文字や空白の有無、数に左右されない性質を指します。この性質を持つ言語では、言語内で定義された要素がどのような順序で出現するかによってのみ、その意味が決定されます。
フリーフォーマットの具体例
最も分かりやすい例として、HTMLが挙げられます。HTMLでは、`pre`要素で囲まれた部分を除き、複数の空白や改行は単語の区切りとして扱われます。つまり、コードをどのように整形しても、ブラウザ上での表示結果に大きな影響を与えることはありません。
プログラミング言語においては、
ALGOLやLISPなどがフリーフォーマットの代表例です。これらの言語では、コードの記述において、改行や空白を自由に追加できます。これは、プログラムの構造が、
字下げ(インデント)に依存しないことを意味します。
可読性向上のためのインデント
フリーフォーマット言語であっても、実際には、プログラムの可読性を高めるために、改行や空白を適切に使用することが一般的です。特に、コードブロックの開始と終了を示すために、インデントが用いられることが多いです。
例えば、C言語やJavaなどの多くの
プログラミング言語では、中括弧 `{}` を用いてコードブロックを定義しますが、その内部のコードは通常、インデントによって一段下げて記述されます。これは、言語仕様によるものではなく、あくまで可読性を高めるためのコーディング規約です。
フリーフォーマットではない言語
一方で、すべての
プログラミング言語がフリーフォーマットであるわけではありません。
Pythonのように、
字下げ(インデント)自体が言語の構文の一部となっている言語も存在します。
Pythonでは、同じインデントレベルにあるコードは、同じブロックの一部として解釈されます。
このような言語は、フリーフォーマット言語とは対照的に、非フリーフォーマット言語、またはインデント構文言語と呼ばれます。
Pythonの他に、YAMLなども非フリーフォーマット言語に分類されます。
まとめ
フリーフォーマットとは、コードの構造が改行や空白に依存しない言語の特性を指します。HTMLや
ALGOL、LISPなどがこれに該当します。これらの言語では、コードの整形は自由ですが、可読性のためにインデントが推奨されます。一方、
Pythonのような非フリーフォーマット言語では、インデントが構文の一部となっており、コードの構造を決定します。
関連項目