コンピュータサイエンスにおいて、構文エラーとは、特定のプログラミング言語で記述されることを意図した文字列の構文におけるエラーのことです。
コンパイル言語の場合、構文エラーはコンパイル時に検出されます。すべての構文エラーが修正されるまで、プログラムはコンパイルされません。インタープリタ言語の場合、構文エラーはプログラムの実行中に検出される場合があり、インタープリタのエラー メッセージでは構文エラーと他の種類のエラーが区別されないことがあります。
どのようなエラーが「構文エラー」であるかについては意見の相違があります。たとえば、Java コードで初期化されていない変数の値を使用すると構文エラーになるという人もいますが、多くの人はこれに反対し[1] [2]、これを(静的な) セマンティックエラーとして分類します。
BASICインタープリタを主なユーザー インターフェイスとして使用していた8 ビットのホーム コンピュータでは、 SYNTAX ERRORエラー メッセージは、インタープリタが解析できないコマンドやユーザー入力に対する応答であったため、やや悪名高いものとなりました。計算機に無効な数式を入力したときに、構文エラーが発生することがあります。これは、たとえば括弧を閉じずに開いたり、あまり一般的ではありませんが、1 つの数値に 複数の小数点を入力したりした場合に発生します。
Javaでは、次の文は構文的に正しいです。
システム.out.println ( " Hello World " ) ;
一方、次のものはそうではありません。
System.out.println(Hello World);
2 番目の例では、理論的には「Hello World」という単語Hello Worldの代わりに変数が出力されます。Java では変数の間にスペースを入れることができないため、構文的に正しい行は になります。
System.out.println(Hello_World)
コンパイラは、言語の文法の要件を満たさないソース コードが与えられた場合に、構文エラーとしてフラグを立てます。
型エラー(Javaでブール変数に++増分演算子を適用しようとするなど)や未宣言変数エラーは、コンパイル時に検出された場合、構文エラーと見なされることがあります。代わりに、このようなエラーを(静的)セマンティックエラーとして分類するのが一般的です。[2] [3] [4]
計算機の構文エラー
構文エラーは、計算機のエラーの種類の 1 つ(科学計算機やグラフ計算機で最もよく見られる) であり、入力された数式に数値や演算などの構文が正しくないことを表します。構文エラーは、次のようなさまざまな形で発生しますが、これらに限定されません。
- 閉じ括弧のない開き括弧(式の最後に閉じ括弧がない場合)
- ほとんどの科学計算機では、負の記号の代わりにマイナス記号を使用します(またはその逆)。一部の科学計算機では、負の記号の代わりにマイナス記号を使用できますが、その逆はあまり一般的ではありません。
参照
参考文献
- ^ 構文または意味の問題ですか?
- ^ ab Java におけるセマンティックエラー
- ^ Aho, Alfred V.; Monica S. Lam; Ravi Sethi; Jeffrey D. Ullman (2007).コンパイラ: 原理、テクニック、ツール(第 2 版). Addison Wesley. ISBN 978-0-321-48681-3。セクション4.1.3: 構文エラー処理、pp.194–195。
- ^ Louden, Kenneth C. (1997).コンパイラ構築: 原則と実践. Brooks/Cole. ISBN 981-243-694-4。演習1.3、27~28ページ。
