Worth 구문 표기법

Wirth syntax notation

Worth Syntax 표기법(WSN; Worth Syntax 표기법)은 메타 구문, 즉 정식 언어를 기술하는 방법입니다.Niklaus Worth가 1977년Backus-Naur 형식(BNF)의 대안으로 제안한 바 있다.명시적 반복구조를 포함하고 있다는 점에서 BNF에 비해 몇 가지 장점이 있으며 빈 문자열(<empty>나 " [1]등)에 명시적 기호를 사용하지 않아도 됩니다.

WSN은 ISO 10303-21[2]시작으로 여러 국제 표준에서 사용되고 있습니다.또한 STEP의 데이터 모델링 언어인 EXPRESS의 구문을 정의하는 데에도 사용되었습니다.

WSN 자체 정의

 구문= { 생산.} .  생산.= 식별자"=" 표현"." .  표현= 용어{ " " 용어} .  용어= 요인{ 요인} .  요인= 식별자               문자 그대로               "[" 표현"]"               "(" 표현")"               "{" 표현"}" .  식별자= 편지{ 편지} .  문자 그대로= """" 성격{ 성격} """" . 

등호 부호는 생산을 나타냅니다.왼쪽 요소는 오른쪽 요소의 조합으로 정의됩니다.생산은 완전 정지(기간)로 종료됩니다.

  • 반복은 대괄호로 나타냅니다.예를 들어 {a}aaaa...를 나타냅니다.
  • 옵션은 대괄호로 나타냅니다.예를 들어 [a]bab b를 나타냅니다.
  • 괄호는 그룹화를 나타냅니다.예를 들어 (a b)cac 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머신에 의한 구문을 작성하려고 할 때 인위적인 오류가 발생할 가능성이 있습니다.이후 메타세칙으로 이행된 개념 중 하나는 사용자에게 복수의 선택지를 주는 것이 구문에 의해 정의된 문법에 대한 파서를 쓰는 것을 어렵게 만든다는 생각이었다.따라서 컴퓨터 언어는 일반적으로 인용문자를 정의하는 방법에 있어 더 제한적이 되었다.

구문도

Syntax_diagram

Wirth-syntax-notation.png

레퍼런스

  1. ^ 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.
  2. ^ "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=(도움말)[데드링크]