Worth 구문 표기법
Wirth syntax notationWorth Syntax 표기법(WSN; Worth Syntax 표기법)은 메타 구문, 즉 정식 언어를 기술하는 방법입니다.Niklaus Worth가 1977년에 Backus-Naur 형식(BNF)의 대안으로 제안한 바 있다.명시적 반복구조를 포함하고 있다는 점에서 BNF에 비해 몇 가지 장점이 있으며 빈 문자열(<empty>나 " [1]등)에 명시적 기호를 사용하지 않아도 됩니다.
WSN은 ISO 10303-21을 [2]시작으로 여러 국제 표준에서 사용되고 있습니다.또한 STEP의 데이터 모델링 언어인 EXPRESS의 구문을 정의하는 데에도 사용되었습니다.
WSN 자체 정의
구문= { 생산.} . 생산.= 식별자"=" 표현"." . 표현= 용어{ " " 용어} . 용어= 요인{ 요인} . 요인= 식별자 문자 그대로 "[" 표현"]" "(" 표현")" "{" 표현"}" . 식별자= 편지{ 편지} . 문자 그대로= """" 성격{ 성격} """" .
등호 부호는 생산을 나타냅니다.왼쪽 요소는 오른쪽 요소의 조합으로 정의됩니다.생산은 완전 정지(기간)로 종료됩니다.
- 반복은 대괄호로 나타냅니다.예를 들어 {a}은 aaaa...를 나타냅니다.
- 옵션은 대괄호로 나타냅니다.예를 들어 [a]b는 ab b를 나타냅니다.
- 괄호는 그룹화를 나타냅니다.예를 들어 (a b)c는 ac bc를 나타냅니다.
오늘날 우리는 이러한 개념들을 당연하게 여기지만, 1977년에는 참신하고 심지어 논란거리도 있었다.워스는 나중에 확장 백커스-나우르 형태로 (다른 구문과 표기법을 가진) 개념의 일부를 통합했다.
주의해 주세요letter
그리고.character
미정의인 채로 있습니다.이는 정의하는 언어에 따라 숫자 문자(0~9)가 양쪽 정의에 포함되거나 하나에서 제외될 수 있기 때문입니다.예를 들어 다음과 같습니다.
숫자= "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" . 대문자의= "A" 'B' … 'Y' 'Z' . 소문자= "a" "b" … "y" "z" . 편지= 대문자의 소문자.
한다면character
을 포함하다digit
기타 인쇄 가능한 ASCII 문자, 그 후 더 멀리 떨어져 있습니다.letter
숫자 문자 또는 특수(비문자) 문자는 포함되지 않은 것으로 가정할 수 있습니다.
또 다른 예
BNF 의 구문은, 그 자체의 BNF 의 예를 변환하는 것에 근거해, 다음과 같이 WSN 로 나타낼 수 있습니다.
구문= 규칙.[ 구문] . 규칙.= 옵티컬 스페이스"<" 규칙명">" 옵티컬 스페이스"::=" opt-space 표현 라인 엔드. 옵티컬 스페이스= { " " } . 표현= 목록.[ " " 표현] . 라인 엔드= Opt-White Space 라인 엔드 라인 엔드. 목록.= 용어[ 옵트 스페이스 리스트] . 용어= 문자 그대로의 "<" 규칙명">" . 문자 그대로의= """" 본문"""" "'" 본문"'" .
이 정의는 BNF에서 "옵션 공백" 개념을 명시적으로 정의해야 하지만 WSN에서는 암묵적으로 정의되기 때문에 지나치게 복잡해 보입니다.이 예에서도text
정의되지 않은 채로 있지만, 이것은 "를 의미하는 것으로 간주됩니다.ASCII-character { ASCII-character }
". (EOL
정의되지 않은 채로 남습니다).크러지가 어떻게 "<" rule-name ">"
두 번 사용된 이유는text
명시적으로 정의되어 있지 않습니다.
이 예에서 나타내는 BNF의 문제 중 하나는 단일 따옴표와 이중 따옴표를 모두 사용하여literal
머신에 의한 구문을 작성하려고 할 때 인위적인 오류가 발생할 가능성이 있습니다.이후 메타세칙으로 이행된 개념 중 하나는 사용자에게 복수의 선택지를 주는 것이 구문에 의해 정의된 문법에 대한 파서를 쓰는 것을 어렵게 만든다는 생각이었다.따라서 컴퓨터 언어는 일반적으로 인용문자를 정의하는 방법에 있어 더 제한적이 되었다.
구문도
레퍼런스
- ^ Wirth, Niklaus (November 1977). "What Can We Do about the Unnecessary Diversity of Notations for Syntax Definitions?". Communications of the ACM. 20 (11): 822–823. doi:10.1145/359863.359883. S2CID 35182224.
- ^ "ISO 10303-21, Industrial automation systems and integration — Product data representation and exchange — Part 21: Implementation methods: Clear text encoding of the exchange structure". International Organization for Standardization. 2002-01-24.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말)[데드링크]