私は文脈自由文法を学習していますが、CやC++のようなプログラミング言語で表現、因子、用語を識別する方法を理解していません。アイデンティティの表現、要因、および用語ですか?
代入文id:= Eがあるとします(Eは任意の算術式です)。
用語とは何ですか?式とは何ですか?実際のコードの要素は何ですか?
我々は
int i = 3, j = 14
int i = 3 + j * 14;
を持つことができますどうもありがとうございました。
私は文脈自由文法を学習していますが、CやC++のようなプログラミング言語で表現、因子、用語を識別する方法を理解していません。アイデンティティの表現、要因、および用語ですか?
代入文id:= Eがあるとします(Eは任意の算術式です)。
用語とは何ですか?式とは何ですか?実際のコードの要素は何ですか?
我々は
int i = 3, j = 14
int i = 3 + j * 14;
を持つことができますどうもありがとうございました。
「因子」、「用語」および「表現」の概念は数学から来ており、実際にプログラミング言語と関係がありません。
要因は、あなたが乗算ものです:
1*2*(3+4)
規約は、追加のものです:
1 + 2 + (3*4)
や表現は、全体の結果を文脈自由言語の構文解析で
1 + 3 * 7
ですこれらの区別を使用して、演算子間の優先順位を整理します。したがって、式は項の和で作られ、項は因子の積で作られ、因子は数字か括弧で囲まれた部分式のいずれかです。
このように「ステートメント」を定義してください(例を追加すると分かります) –
あなたの宿題は、おそらくまた、CやC++などのプログラミング言語(Aのサブセット)、の線に沿って何かのための文法仕様があります。
プログラム - >式|定義|宣言
Expression->式を+長期
Expression->式 - ターム
Expression->式*ファクター
...
...
...
などなど
3 + j * 14は式、3はterm(+で結ばれたものは上記の文法に従ったExpressionまたはTermです)jと14は因子です 上記の文法は実際のプログラミング言語の文法がどのように見えるかについての非常に粗末な模倣です。
[OK]をので、私たちはこのような文法を持っているとします
プログラム - >(定義|ラムダ)
Definitions->の定義の定義
Definitions-> "INT" の定義 ";" | "int"定義、定義 ";"
定義 - >名前 "=" 式
Expression->用語 "+" 式
Expression->式 " - " 期間
Expression->式 "*" ファクター
ターム - > "3" |「14」
ファクター - >「3」|「14」
式 - >「3」|私の終端記号が引用符であると私は名前は次のように定義された部分を省略して「14」
注意文字と数字の組み合わせ、文字またはアンダースコアで始まるアンダースコア:)
だから、あなたの例では:
1行目のint i = 3、J = 14;
行2 int i = 3 + j * 14;
iとjは名前です。 3,14(1行目)と3 + j * 14(2行目)は式です。次に、2行目、3はTerm、j * 14はExpression、jはFactor、14はFactorです。
@AlexKです。しかし、実際のコードにどのような表現、要素、用語が含まれているかを見たいと思っています。ありがとう、結構です。 – CppLearner