メタ言語
メタ言語(メタげんご、英: Metalanguage)とは、何らかの言語について論じる際に、その対象となる言語(単に対象言語などと表現される)と区別する形で記述する側の言語を指す用語である(ここで指す言語は自然言語であることも形式言語であることも有り得る)。
しばしばメタ言語は対象言語と同じものが使われる(日本語で日本語を論じたり、集合論の言語で集合論を論じるなど)が、これらの区別が曖昧であった場合、とくに論理学や意味論において矛盾を生じることがある[1]。
数学
[編集]数理論理学において言語とは、取り扱う対象となる(述語・演算・関係などを表す)記号の集合であり、例えば集合論では一般的な論理記号および量化子と集合の所属関係 ∈ がその言語となる。この場合は、それら特定の言語が対象言語であり、それを論じる人間が扱っている言語 (すなわち自然言語である日本語や英語など) がメタ言語となる。
コンピューター分野
[編集]バッカス・ナウア記法
[編集]特にプログラミング言語のような形式言語の構文を記述する際に使われる記法がバッカス・ナウア記法 (BNF) である。BNF記法には様々な変種が存在するが、そのうち拡張バッカス・ナウア記法とも呼ばれるEBNF (Extended BNF) はISOとIECによって標準化されており、文書は「Syntactic metalanguage」(直訳: 構文的メタ言語) と題されている[2]。
ML
[編集]Standard MLやOCaml、F#などの言語の源流であるMLは、元々は1970年代にロビン・ミルナーと彼の研究グループが開発したMeta Languageという名前の定理証明システムとその内部で使用されたメタ言語(すなわち、証明を記述するために使用された言語)であった[3]。
関連項目
[編集]脚注
[編集]- ^ 丹治信春「メタ言語」『日本大百科全書(ニッポニカ)』小学館、2023年 。
- ^ ISO - ISO/IEC 14977:1996 - Information technology — Syntactic metalanguage — Extended BNF. ISO/IEC. (1996) 2023年3月2日閲覧。
- ^ MacQueen, David; Harper, Robert; Reppy, John (2020-06-12). “The history of Standard ML”. Proceedings of the ACM on Programming Languages 4 (HOPL): 86:1–86:100. doi:10.1145/3386336 .