2011-11-08 3 views
4

문맥 자유 문법을 배우고 있는데 C 나 C++ 같은 프로그래밍 언어에서 표현, 요소 및 용어를 식별하는 방법을 이해하지 못합니다.신원 표현, 요소 및 용어?

id : = E 여기서 E는 임의의 산술 식입니다.

용어 란 무엇입니까? 표현이란 무엇입니까? 실제 코드에서 어떤 요소가 있습니까?

우리는

int i = 3, j = 14 
int i = 3 + j * 14; 

매우 감사 할 수 있습니다.

+0

@AlexK 맞습니다. 하지만 실제 코드에서 표현식, 요소 및 용어가 무엇인지 확인하고 싶습니다. 그래도 감사합니다. – CppLearner

답변

12

"요인", "용어"및 "표현"개념은 수학에서 비롯된 것이므로 프로그래밍 언어와 관련이 없습니다.

요인 당신은 다중 것들을 다음과 같습니다

1*2*(3+4) 

약관 추가 것들 :

1 + 2 + (3*4) 

그리고 표현 전체 결과 문맥 - 자유 언어 구문 분석에서

1 + 3 * 7 

위한 것입니다 이러한 구분을 사용하여 운영자 간의 우선 순위를 구성합니다. 따라서 표현식은 용어의 합으로 이루어지며 용어는 요인의 곱으로 만들어지며 요소는 숫자 또는 괄호 안에있는 부분 표현식 중 하나입니다.

+0

"문장"을이 방법으로 정의 해 주실 수 있습니까? (예제를 추가하시면 감사하겠습니다) –

1

숙제는 또한 아마의 라인을 따라 문법 C 또는 C와 같은 프로그래밍 언어 A ((A)의 일부)에 대한 사양 ++, 뭔가가 있습니다

프로그램 -> 표현 | 정의 | 선언
Expression-> 식 + 용어
Expression-> 식 - 용어
Expression-> 식 * 인자

... ... ...

등 등

그런 다음 3 + j * 14는 표현식이며 3은 용어입니다 (+로 연결된 항목은 위의 문법에 따라 표현식이나 용어 중 하나입니다). j 및 14는 인수입니다. 위의 문법은 다음과 같습니다. 실제 프로그래밍 언어의 문법이 어떻게 생겼는지에 대한 매우 조잡한 모방.

1

좋아, 그래서 우리는이 같은 문법이 있다고 가정

프로그램 -> (정의 | 람다)
정의 -> 정의 정의

정의 -> "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은 용어이고 j * 14는 표현식이고 j는 Factor이고 14는 Factor입니다.