2017-12-19 6 views
2

CSS의 질문에 this answer을 읽은 후, 나는 궁금 :하나의 상수 값이 표현식으로 간주됩니까?

컴퓨터 과학에서

는 표현으로 간주 하나의 상수 값인가?

즉, 7px은 표현식입니까? 7은 어떨까요?

인용 Wikipedia 강조 광산 :

프로그래밍 언어의 발현 하나 이상의 명백한 값, 상수, 변수, 연산자와 함수의 조합이라는 프로그래밍 언어 해석 [.. .]를 계산하고 [012]을 [...]으로 계산합니다. 이 과정은 수학 표현식과 마찬가지로 평가라고합니다.

인용 MS Docs는 강조 광산 :

식은, 단일 값 평가 대상이 될 수 하나 이상의 피연산자0 이상의 사업자의 서열이다 메서드 또는 네임 스페이스. 표현식은 리터럴 값 [...]으로 구성 될 수 있습니다.

이 두 가지 모두 값이 표현식임을 나타냅니다. 그러나 가치는 이미 가치이기 때문에 평가되지 않을 것이므로 자격이 없다고 주장 할 수 있습니다. Techopedia 인용

강조 광산 :

[...]의 구조면에서 전문가 식 본질적에 작용되는 적어도 하나의 '오퍼랜드'또는 값을 필요로하고 있어야 지적 하나 이상의 운영자. [...]

이 그것을 하나 이상의 사업자을 부족으로도 x는 표현으로 충족하지 못하는 것을 제안

.

+0

[이 관련 질문] (https://stackoverflow.com/questions/18443801/in-programming-what-is-an-expression)에 대해 알고 있습니다. 그러나 거기에 대한 대답은이보다 구체적인 질문에 대답하지 않습니다. – domsson

+0

@Racil 당신은 맞을 수도 있지만, 또 다시, "0 개 이상의 연산자"_는 "하나 이상의 연산자"_와 분명히 다릅니다! – domsson

+0

예, 문언을 향상시킬 수 있다는 데 동의하지만이 질문에는 실제 가치가 표시되지 않습니다. 어느 쪽이든, 어떤 차이가 있습니까? 표현식을 사용할 수있는 대부분의 경우 (전부는 아닐 경우)에는 단일 값을 사용할 수도 있습니다. 나는 내 질문에 :이 질문에 대답함으로써 우리는 무엇을 얻을 것인가? –

답변

2

정확한 정의에 따라 다르지만 대다수 정의에서 표현식은 상수를 기초로하는 재귀 적으로 정의됩니다. 그렇습니다. 리터럴 값은 표현식의 특별한 경우입니다. 당신은 당신이 expr이 숫자 리터럴을 포함하는 atom 될 수 있음을 참조 문법을 통해 추적 경우

당신은 같은 one for Python

등 다양한 언어에 대한 문법 볼 수 있습니다.

comparison: expr (comp_op expr)* 

7가 유효한 표현이 아닌 경우 캡처되지 않을 것이다 x < 7 같은 표현을 캡처 생산이다 : 당신은 같은 작품을 고려할 때 숫자 리터럴 파이썬 식 있다는 사실은 분명하다.

+0

이 답변 (특히 첫 번째 단락 이후의 텍스트)은이 질문과 관련이 없습니다. 표현식이 예상되는 값을 사용할 수 있다는 사실은 어떤 식 으로든 값이 표현식으로 간주된다는 것을 의미하지는 않습니다. 프로그래밍 언어는 어떤 곳에서 다른 것들을 사용하는 예들로 가득합니다. 예를 들어, 일부 언어는 문자열 변수에 정수를 할당하고 암시 적으로이를 문자열로 변환 할 수 있습니다. 이것은 당신의 논리에 따라 정수가 문자열로 간주된다는 것을 의미합니까? –

+0

질문은 컴파일러와 프로그래밍 언어의 동작이 아니라 프로그래밍 개념에 관한 것입니다. –

+1

@RacilHilan 파이썬에서 표현식이 필요한 곳에 '7'을 사용할 수 있다는 사실은 파이썬에서 '7'이 표현식이라는 것을 의미합니다. 나는 파이썬이 특이하다고 여기지 않는다. 공식 C 문법을 빠르게 검사하면 '7'이 표현식으로 간주됩니다. 대부분의 프로그래밍 언어가 "표현식"(또는 유사한 것)이라고하는 비 터미널을 가지고 있고 이러한 비 터미널을 정의하는 문법이 '7'과 같은 리터럴 표현식을 허용한다면 "표현"의 플라톤 적 이상 정의가 있습니다. 그것을 포함하지 않습니다. –

1

컴퓨터 과학에서 단일 상수 값이 식으로 간주됩니까?

전적으로 문맥에 따라 다릅니다. 예를 들어, FORTRAN, BASIC W COBOL은 모두 행 x 호를가집니다. 이들은 표현식이 아닌 숫자 상수 값입니다.

(다른 언어에서도) 숫자 상수는 표현식이 될 수 있습니다.

관련 문제