의미론이란 무엇입니까?


13

많은 인기있는 언어가 있습니다. 그러나 컴퓨터 과학자들은 이러한 언어로 된 프로그램의 동작을 이해하기 위해 프로그램 동작에 대해 확실하고 분명하게 논쟁하기 위해 (예를 들어, 그들의 신분 증명) 다른 잘 이해되는 언어로 번역해야한다고 말합니다. 그들은 그러한 언어를 "의미론"이라고 부릅니다. 저자는 많은 의미론 중 하나를 제안합니다. 그들은 건축의 의미와 언어를 어떻게 번역 할 수 있는지 설명합니다. 일단 그렇게하면 모든 사람들이 당신의 프로그램을 확실히 이해할 것입니다.

좋아 보이지만 나는 무언가를 이해하지 못합니다. 그들은 우리에게 첫 번째 언어를 이해하기 위해 다른 언어를 소개한다고 말합니까? 왜 우리는 그것을 원래의 것보다 더 잘 이해합니까? 왜이 의미론이 그것보다 낫습니까? C의 의미를 설명하기 위해 다른 언어를 발명하는 대신 C의 의미를 즉시 배우지 않겠습니까? 구문에도 동일하게 적용됩니다. 구문에 대해 같은 질문을하지 않는 이유는 무엇입니까?

추신 의견에서 나는 의미론이 다른 언어 또는 다른 언어로의 번역을 의미하지 않는다고 들었습니다. 그러나 VHDL의 형식적 의미론은 어떤 방식으로 만 무언가를 이해한다면 그것을 이해하지 못하고 다른 언어 (알려진)로 번역하는 메커니즘이있는 언어를 제공하면 "의미의 의미"를 지정할 수 있다고 말합니다. 즉, "의미론은 공식 시스템 간의 관계"입니다. 프로그래밍 언어의 의미론 에서 헤네시 는 의미론이 의미론이 BNF 또는 구문 다이어그램으로 제공 될 때 "의미"프로그램을 공식적으로 처리 할 수 ​​있다고 말한다. 언어가 아닌 경우 공식 시스템은 무엇입니까?

PS2 나는 주어진 HDL 프로그램의 게이트 상호 연결로의 HW 합성이 의미 추출의 과정이라고 말할 수 있습니까? 우리는 (높은 수준의) 설명을 나중에 이해하는 (낮은 수준의) 언어로 번역합니다.


어떤 종류의 다이어그램을 의미합니까? 나는 시맨틱 스로 작업하지만 실제로 다이어그램을 사용하지 않습니다.
Dave Clarke

1
{0,1}+value(w)=i=1|w|wi2ni+1

@Dave 실례합니다. 저는 과제 결정 다이어그램에 대한 인상으로 질문을 작성했습니다. 나는 또한 저자들이 서로 다른 의미를 제안하는 책인 VHDL을위한 형식적 의미론 (formal semantics), 많은 다이어그램을 각각 제공한다. 나는 이것이 우리가 매핑하는 언어라고 생각했습니다.
Val

이것은 의미론과 비슷하지 않으며 하드웨어로 컴파일하는 중간 단계와 비슷합니다.
Dave Clarke

예, 그러나 그들은 설명에서 "의미"를 추출합니다.
Val

답변:


15

C의 의미를 설명하기 위해 다른 언어를 발명하는 대신 C의 의미를 즉시 배우지 않겠습니까?

C의 의미를 정의하려면 영어와 같은 언어가 필요하기 때문입니다. 영어는 모호 할 수 있으며 특히 C99 의미입니다.

의미론의 컴퓨터 과학 개념은 일반적으로 프로그램의 수학적 설명이며,이 설명은 정확히 번역 된 것은 아닙니다. 여러 가지 의미론이 있으며, 다른 의미가 있습니다.

  1. 프로그램이 계산하는 수학 함수에 관한 정보 ( semantics ),
    lambda x: x + x =(x2x)
  2. 프로그램 전후에 보유해야 할 속성에 대해 ( axiomatic semantics ),
    {a>0} x = a; y = 0; while(1 < x){ x = x/2; y++; } {y=log(a)}
  3. 프로그램이 어떻게 운영상의 의미를 줄일 수 있는지에 대해 . 여기서 는 전후의 메모리를 나타냅니다. 이 경우 와 가 의 메모리 셀 이면 및그리고그리고 만약 .
    (σ, while(x){x--;y++;})σ
    σ,σσ=(xa,yb)σ=(xa+b,y0)xyxya

슬프게도 현재 시맨틱을 통해 프로그램을 보편적으로 이해하는 것은 쉽지도 않고 의도도 아닙니다. 글쎄, 그 수학은 지저분해질 수 있기 때문에 전자가 아닙니다. 의미론이 실제로 공통적이고 명확한 설명을 제공하기 때문에 후자가 아니지만 프로그램을 이해하는 데 사용되지는 않습니다.

의미를 읽는 것이 그다지 의미가 없다면, 언어의 기본 요소에 대한 의미를 읽고 동의하는 것이 매우 중요원시 작품.continue

결론적으로:

그들은 우리에게 첫 번째 언어를 이해하기 위해 다른 언어를 소개한다고 말합니까?

기술적으로는 언어가 수학입니다. 또한 기본적으로 모든 프로그래밍 언어에서 동일하므로 새 언어를 도입하더라도 모든 언어가 동일하다면 거의 괜찮을 것입니다.

왜 우리는 그것을 원래의 것보다 더 잘 이해합니까?

수학이기 때문에 이해하기 어려울 수 있지만 더 정확하고 완전합니다.

구문에도 동일하게 적용됩니다.

검증 된 파서에 대한 작품이 있지만 파서의 의미가 무엇을 의미하는지에 대한 질문은 사소한 것이 아닙니다.


2
"수학 [...]은 더 정확하고 완전합니다." 물론 수학 자체의 형식적 구문과 의미론에 대한 질문을 제기합니다. ;)
라파엘
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.