パースエラー
エラーだよ
コンピュータさんが内容を把握するのに失敗したよ
書き方が間違っている場合が多いよ
簡単に書くよ
パースエラー(読:パースエラー 英:parse error)とは
「多分あなたの書き方が間違っているからだと思うんだけどね。何が書いてあるか分からなかったよ(内容を把握できなかったよ)」エラーのこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「パース」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
パースは「(構造とかを)解析すること」をカッコ付けて言った表現です。
例えば、そうですね。
ピヨ太君がパソコンさんに「パンを買ってこい」と言いました。
「パンを買ってこい」と言われたパソコンさんは、ピヨ太君に言われた「パンを買ってこい」を
パン:名詞【目的語】
を:助詞(格助詞)
買っ:動詞【動作】
て:助詞(接続助詞)【動作】
こい:動詞【命令】
みたいに分解して「何を言っているんだべ?こいつ」を把握しようと頑張りました。
ふむふむ、なるほど。
どうやらピヨ太君はパンを買ってきてほしいみたいです。
パソコンさんは「自分で行け」と返答しました。
この話においてパソコンさんがやったのがパースです。
「パンを買ってこい」を解析していますよね。
※「パース」という用語は美術とか建築の分野でも出てきます。美術・建築分野で出てくる「パース」は「パースペクティブ(perspective)」の略です。意味は「遠近法」とか「透視図法」とか、そんな感じです。
以上を踏まえて
「何が書いてあるか分からなかったよ(内容を把握できなかったよ)」エラー
が「パースエラー」です。
言い方を変えると「解析に失敗しました」エラーですね。
「解析エラー」とも呼ばれます。
例えば、そうですね。
プログラムを作って動かすまでの一般的な流れは
1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する
です。
コンピュータさんは人間語が分かりません。
人間様はコンピュータさんの言葉が分かりません。
プログラムは人間様が作るものです。
そこで最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これをやれ」な命令を人間語で書くのです。
次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に お仕事をするのは、コンピュータさんですからね。
コンピュータさんが分かる言葉に変換する必要があるのです。
コンピュータさんが分かる言葉に翻訳したので、コンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。
それを踏まえて、読み進めてください。
ピヨ太君が人間語で以下の処理を書きました。
1.掃除をしろ
2.洗濯をしろ
3、おっぺけぺー!
4.ご飯を作れ
人間語を機械語に翻訳するのがお仕事のプログラム(コンパイラ)は、この内容を機械語に翻訳します。
1行目には
1.掃除をしろ
と書いてあります。
これを
ソウジヲシーロ
に翻訳しました。
2行目には
2.洗濯をしろ
と書いてあります。
これを
センタクヨロシク
に翻訳しました。
3行目には
3、おっぺけぺー!
と書いてあります。
これを……何じゃ?こりゃ。
何が書いてあるのか、よく分かりません。
これでは機械語に翻訳するのは無理です。
こんなときにコンパイラさんは、どうするでしょう?
答えは
翻訳を諦める
です。
「分からん……作ったやつに何とかさせよう」と判断して「おい、何かおかしいぞ。出直して来い!」と差し戻します。
だって、翻訳できないんですもん。
仕方ないじゃないですか。
これがパースエラー(の一例)です。
コンパイルするときに発生する
「人間語から機械語への翻訳が できませんでした!」なエラー
です。
パースエラーは「解析できなかったよ」エラーです。
どうして解析できなかったか?
他にも可能性はありますが、一番よくあるのは
間違った書き方をしているから
です。
間違った書き方をしているからコンピュータさんが「なんだ?こりゃ。よく分からん」となっている(ことが多い)のがパースエラーです。
一言でまとめるよ
まぁ「パースエラー」って単語が出てきたら「『何が書いてあるか分からなかったよ(内容を把握できなかったよ)』エラーなんだな~」と お考えください。
おまけ
■訳してみるよ
「parse(パース)」の意味は「構文解析する」とかです。
「error(エラー)」の意味は「誤り」とか「間違い」とか「過失」とかです。
何となく くっつけると
構文解析の誤り
となります。
■検索してみる?






