추천, 2024

에디터의 선택

구문과 의미의 차이점

구문과 의미는 프로그래밍 언어와 관련하여 매우 중요한 용어입니다. 프로그래밍 언어의 구문에는 언어의 허용 된 문구 집합이 포함되지만 의미는 해당 문구의 관련 의미를 나타냅니다.

각 의미 론적 요소가 적어도 하나의 구문 론적 표현에 연결되어 있고 다른 하나는 각각의 구문 적 표현이 고유 한 의미를 갖도록하는 구문과 의미론 사이의 관계가 있습니다.

비교 차트

비교 근거통사론의미론
기본언어의 허용 문구.문구의 해석.
오류컴파일 할 때 처리됩니다.런타임시 대면했습니다.
관계통사론 해석에는 몇 가지 뚜렷한 의미가 있어야합니다.시맨틱 구성 요소는 구문 표현과 관련이 있습니다.

구문의 정의

프로그래밍 언어의 구문 은 프로그램의 의미를 고려하지 않고 프로그램의 구조를 나타 내기 위해 사용됩니다. 기본적으로 프로그램의 외양과 구조, 레이아웃을 강조합니다. 여기에는 프로그램에서 사용되는 기호 및 명령의 순서를 검증하는 규칙 모음이 포함됩니다. 실용적 및 계산 모델은 프로그래밍 언어의 이러한 구문 요소를 나타냅니다. 프로그래밍 언어의 구문 지정을 위해 개발 된 도구는 규칙적이고 컨텍스트가없고 속성 문법입니다.

그러나, 이 측면에서 문법의 사용은 무엇입니까? Grammars는 일반적으로 프로그램을 인식하고 생성하는 것을 목적으로하는 재 작성 규칙입니다. 문법은 언어 구조에 대한 설명 대신 계산 모델에 의존하지 않습니다. 문법에는 문법적 범주 (명사구, 동사구, 기사, 명사기 등), 독방 단어 (영문자 요소) 및 문법 범주의 구성 요소 내에서 순서를 지정하는 올바른 규칙이 포함되어 있습니다 나타나야합니다.

구문 분석 은 컴파일러가 수행하는 작업으로, 프로그램에 적절한 파생 트리가 있는지 여부를 검사합니다.

프로그래밍 언어의 구문은 다음 공식 및 비공식 기술을 사용하여 해석 할 수 있습니다.

  • 식별자, 리터럴, 문장 부호 및 연산자와 관련된 기본 기호에 대한 규칙을 정의하기위한 어휘 구문 입니다.
  • 구체적인 구문 은 알파벳과 같은 어휘 기호를 사용하여 프로그램의 실제 표현을 지정합니다.
  • 추상 구문 은 중요한 프로그램 정보 만 전달합니다.

문법 유형

  • 컨텍스트 프리 (context-free) 문법 은 전체 언어 구조를 파악하는 데 널리 사용됩니다.
  • 정규 표현식 은 프로그래밍 언어의 어휘 단위 (토큰)를 설명합니다.
  • 속성 문법 은 언어의 상황에 맞는 부분을 지정합니다.

의미 정의

프로그래밍 언어의 의미론 용어는 구문과 계산 모델 간의 관계를 파악하는 데 사용됩니다. 프로그래머가 쉽게 이해하고 프로그램 실행 결과를 예측할 수 있도록 프로그램의 해석을 강조합니다. 구문 지향적 의미론 ( syntax-directed semantics )으로 알려진 접근법은 함수의 도움으로 구문 구조를 계산 모델에 매핑하는 데 사용됩니다.

프로그래밍 언어의 의미는 다양한 기술 (대수적 의미론, 공리적 의미론, 운영 적 의미론, 의미 론적 의미론 및 번역 의미론)로 설명 될 수 있습니다.

  • 대수적 의미론 은 대수를 정의하여 프로그램을 해석합니다.
  • 공리적 의미론 은 프로그램 실행의 각 지점 (즉, 암묵적으로)을 억류하는 연관성에 대한 주장을 구축함으로써 프로그램의 의미를 결정합니다.
  • 조작 상 의미론 은 언어를 추상 기계와 비교하고 프로그램은 상태 전이의 연속으로 평가됩니다.
  • 의미 론적 의미 는 프로그램 상태에서 작동하는 일련의 기능의 형태로 프로그램의 의미를 표현합니다.
  • 번역 의미론 은 프로그램을 다른 언어로 번역하는 데 사용되는 방법에 중점을 둡니다.

구문과 의미의 주요 차이점

  1. 구문은 프로그래밍 언어로 작성된 프로그램의 구조를 나타냅니다. 반면에, 의미론은 프로그램 감각과 계산 모델 사이의 관계를 설명합니다.
  2. 구문 오류는 컴파일시 처리됩니다. 반대로 시맨틱 오류는 런타임에서 찾기 어렵습니다.
  3. 예를 들어, C ++에서 변수 "s"는 "int s;"로 선언되며 초기화하려면 정수 값을 사용해야합니다. 정수를 사용하는 대신 "7"을 사용하여 초기화했습니다. 이 선언 및 초기화는 구문 상 정확하지만 "7"은 정수 형식을 나타내지 않으므로 의미 상 부정확합니다.

결론

프로그래밍 언어의 구문은 코드의 구조 나 형식을 지정하는 규칙의 모음이며, 의미는 코드의 해석 또는 기호, 문자 또는 프로그램의 모든 부분과 관련된 의미를 의미합니다.

Top