推奨されます, 2019

エディターズチョイス

構文と意味の違い

構文と意味は、あらゆるプログラミング言語に関連する非常に重要な用語です。 プログラミング言語の構文は言語の許可された句のセットを含みますが、意味論はそれらの句の関連する意味を表します。

各意味要素が少なくとも1つの構文表現にリンクされ、もう1つの要素がそれぞれの構文表現に明確な意味があることを保証する構文と意味の間には、いくつかの関係があります。

比較表

比較基準構文意味論
基本許可されている言語のフレーズ。フレーズの解釈
エラーコンパイル時に処理されます。実行時に直面しました。
関係構文上の解釈は、いくつかの明確な意味を持たなければなりません。セマンティックコンポーネントは構文表現に関連付けられています。

構文の定義

プログラミング言語の構文は、プログラムの意味を考慮せずにプログラムの構造を表すために使用されます。 それは基本的にその外観とプログラムの構造、レイアウトを強調しています。 プログラムで使用される一連のシンボルと命令を検証する規則の集まりです。 実用的および計算モデルは、プログラミング言語のこれらの構文上の構成要素を形作ります。 プログラミング言語の構文の仕様のために進化したツールは、通常の文脈自由および属性文法です。

しかし、この点で文法はどのように使用されていますか? 文法は一般的にプログラムを認識し生成することを目的とした書き換え規則です。 文法は、言語の構造の記述に使用される計算モデルには依存しません。 文法には、一連の有限の文法カテゴリ(名詞句、動詞句、冠詞、名詞など)、孤立語(アルファベットの要素)、および文法カテゴリの構成要素内での順序を指定するための整形式規則が含まれます。表示されるはずです。

構文解析は、プログラムが適切に関連付けられた派生ツリーを持っているかどうかを調べるコンパイラによって実行されるタスクです。

プログラミング言語の構文は、以下の形式的および非公式の手法を使用して解釈できます。

  • 識別子、リテラル、句読文字、および演算子を含む基本シンボルの規則を定義するための字句構文
  • 具象構文は、アルファベットのような字句記号を使ってプログラムの実際の表現を指定します。
  • 抽象構文は重要なプログラム情報だけを伝えます。

文法の種類

  • 文脈自由文法は、言語構造全体を理解するために広く使用されています。
  • 正規表現は、プログラミング言語の字句単位(トークン)を表します。
  • 属性文法は言語の文脈依存部分を指定します。

意味の定義

プログラミング言語の意味論の用語は、構文と計算モデルとの間の関係を理解するために使用されます。 プログラマーが簡単に理解できるように、またはプログラムの実行結果を予測できるように、プログラムの解釈を強調します。 構文指向 セマンティクスとして知られているアプローチは、関数の助けを借りて構文構造を計算モデルにマッピングするために使用されます。

プログラミング言語のセマンティクスは、代数セマンティクス、公理セマンティクス、操作セマンティクス、表記セマンティクス、および変換セマンティクスというさまざまな手法で記述できます。

  • 代数的意味論は代数を定義することによってプログラムを解釈します。
  • 公理的意味論は、プログラムの実行の各時点で(すなわち、暗黙的に)拘束する関連についての主張を構築することによってプログラムの意味を決定します。
  • オペレーショナルセマンティクスは言語を抽象マシンと比較し、そしてプログラムは一連の状態遷移として評価されます。
  • 表記意味論は、プログラムの状態を操作する関数の集合の形でプログラムの意味を表現します。
  • 翻訳セマンティクスは、プログラムを他の言語に翻訳するために使用される方法に焦点を当てています。

構文と意味の主な違い

  1. 構文は、プログラミング言語で書かれたプログラムの構造を指します。 一方、セマンティクスは、プログラムの意味と計算モデルとの関係を表します。
  2. 構文エラーはコンパイル時に処理されます。 反対に、セマンティックエラーは見つけるのが難しく、実行時に遭遇します。
  3. たとえば、c ++では、変数 "s"は "int s;"として宣言されています。初期化するには整数値を使用する必要があります。 整数を使用する代わりに、「Seven」で初期化しました。 「7」は整数形式を表していないため、この宣言と初期化は構文的には正しいが意味的には正しくありません。

結論

プログラミング言語の構文はコードの構造または形式を指定するための規則の集まりですが、セマンティクスとはコードの解釈またはシンボル、文字、またはプログラムの任意の部分の関連する意味を指します。

Top