검색 여닫기
검색
메뉴 여닫기
518
226
4
2천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Syntax 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Syntax
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[분류: 프로그래밍 언어]] == 개요 == Syntax란 [[프로그래밍 언어]]에서, 기호의 집합으로 구성된 statements혹은 expression을 의미한다. 이 syntax는 프로그래밍 언어의 문법을 구성한다. syntax는 위치정보와 기호를 통해서 (주로, 컴퓨터에서는 글자로 표현된다.) 표현된다. syntax는 프로그래밍 언어의 형태를 나타내며, [[Semantics]]와는 다르게 의미정보는 가지고 있지 않는다. Semantic정보가 처리되기 전에, 컴퓨터에 의해서 판단되는 정보가 syntax이다. 그러나, 특정 조건에서는 Semantic정보를 알아야 Syntax정보를 파악할 수 있는 경우도 존재한다. == Syntax의 정의 == Syntax는 [[Regular expression]]과 [[Backus-Naur form]]에 의해서 정의되며 nonterminals와 terminal symbol로 구성된다. 여기서 terminal symbol은 불변의 값 상수나 표현식을 의미하며, nonterminal symbol은 terminal symbol의 합으로 구성되는 집합기호를 의미한다. :<code><기호> = <표현식></code>에서 기호는 nonterminal, 표현식은 terminal의 집합이다. <syntaxhighlight lang="BNF"> expr ::= num | "(" expr "+" expr ")" | "(" expr "-" expr ")" </syntaxhighlight> 는 다음과 동일한 의미를 지닌다. <syntaxhighlight lang="BNF"> expr ::= num | "{" "+" expr expr "}" | "{" "-" expr expr "}" </syntaxhighlight> 즉 이처럼 syntax는 문법적 구조를 지니는 규칙이다. == Syntax의 종류 == === Concrete syntax === 구체적 문법은 정확히 어떻게 프로그래머가 프로그램을 작성해야 할지를 지시한다. 예를 들어서 C에서는 두 함수를 더하는 구문을 +로 정의하여서 <code>4 + 4</code>로 나타낼 수 있다. 그러나 이러한 구조를 새로운 언어에서는 다음과 같이 나태낼 수 도 있다. <code>+ 4 4</code>이처럼 구체적 문법은 프로그래머가 작성해야 하는 방식을 정의한다. '''구체적 문법'''은 "특정 프로그램이 정의하는 프로그래머가 따라야 하는 규칙"이다. === Abstract syntax === 요약 문법은 구체적 문법에서 공통으로 표현하는 것으로 표현하는 것을 의미한다. 구체적 문법과는 다르게 요약 문법에서는 symbol의 정의가 큰 의미가 없다. 대신 상징으로 다음과 같은 정의에서는 다음과 같은 문법이 도출된다는 Abtracted한 문법을 나타낸다. 즉 구체적 문법의 Abtraction이 요약 문법이다. '''요약 문법 (추상 문법)'''은 추상화된 문법의 규칙이다.
Syntax
문서로 돌아갑니다.