形式言語とは?けいしきげんご
形式言語とは、文字の並びのうちどれを正しい文とみなすかを、規則だけで厳密に定めた言語。意味は扱わず並び方だけを決める点が、人が使う自然言語と違う。プログラム言語の文法はこの形で定義され、BNF(文の作り方の規則を「〈式〉::=〈数〉+〈数〉」のように書く記法)で書き表して、オートマトン(文字を1つずつ読んで状態を移し、最後に正しい文かを判定する仕組み)で受理できる(正しい文と認められる)かを判定する。
最終更新:2026-10-09
基本情報を最短で暗記・合格する →背景
人が使う言葉は、同じ文でも読み手によって解釈が変わる。それを計算機に処理させる言語で許すと、同じソースコードが処理系ごとに違う動きをしてしまう。そこで「この規則で作れる文字列だけを正しいとする」と機械的に判定できる形まで言語を切り詰めた。解釈の余地を捨てる代わりに、正しさの判定を自動化できるようにした枠組みである。
具体例
C言語やJavaの規格書には、識別子や式の作り方がBNFに近い記法で書かれている。コンパイラ(プログラムをまとめて機械語に翻訳するソフト)は、書かれたコードがその規則に合うかを構文解析(文の並びが規則に合うかを調べる処理)で確かめ、合わなければ構文エラーとして止める。正規表現(「数字が3けた続く」のように文字の並びの型を表す書き方)で書ける範囲は、形式言語の中で最も単純な種類にあたる。
試験での引っ掛け
形式言語が決めるのは並び方(構文)だけで、その文が何を意味するかは含まない。型の食い違いや0による除算は構文としては正しく、意味解析や実行時に初めて問題になる。また有限オートマトンで扱えるのは正規表現に対応する範囲までで、括弧の対応を数える文法は有限オートマトンでは判定できず、記憶を持てるより強い仕組みが要る。
関連用語
出典・参考
公式シラバスの1 基礎理論 > 3. 情報に関する理論 > (9) コンパイラ理論に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。