권장 BNF 표기법

4071 단어 SQLbnf문서
달인 프로그래머 읽을 때 나와요.
그래, 최근에 여러 곳에서 봐서 조사했어.
BNF를 잘 읽으면 자료 판독에 진전이 있을 것이다.

BNF (발크스노니아어란 무엇인가)


상하문 자유 문법을 정의하는 데 사용되는 메타언어
byWikipedia

예제


달인 프로그래머의 훈련 문제부터
시간 태그를 정의하는 BNF 구문을 만들지만 다음 예제를 설명할 수 있습니다.
4pm, 7:38pm, 23:42, 3:16, 3:16am
시간을 나타내는 BNF
<時刻> ::=  <時間><午前午後>|
           <時間>:<分><午前午後>|
           <時間>:<分>
<午前午後> ::= am|pm
<時間> ::= <10進桁>|
          <10進桁><10進桁>
<分> ::=<10進桁><10進桁>
<10進桁> ::= 0|1|2|3|4|5|6|7|8|9

34:15 같은 여분의 것도 설명할 수 있지만 이번에는 그 해설을 생략했다.

SQL과의 관계


최근에 이것게시물에서 가르쳐준 SQL92 문서은 BNF로 썼어요.일반적으로 이렇게 엄격한 정의를 내린 후에 이해하기 쉬운 구체적인 예가 나타나지만 딱딱한 자료라면 그런 것을 덧붙이지 않기 때문에 BNF를 이해하기 싫으면 해석할 수 없다.
질의 정의
<query specification> ::=
     SELECT [ <set quantifier> ] <select list> <table expression>

<select list> ::=
       <asterisk>
     | <select sublist> [ { <comma> <select sublist> }... ]

<select sublist> ::=
       <derived column>
     | <qualifier> <period> <asterisk>

<derived column> ::= <value expression> [ <as clause> ]

<as clause> ::= [ AS ] <column name>
지원
<set quantifier> ::= DISTINCT | ALL

<table expression> ::=
     <from clause>
     [ <where clause> ]
     [ <group by clause> ]
     [ <having clause> ]
※ []는 있어도 되고 없어도 되는 아이템입니다.
[ ] Square brackets indicate optional elements in a formula. The
portion of the formula within the brackets may be explicitly
specified or may be omitted.
또한 시각적으로 BNF를 표현하는 것도 있다문법 표현식

Oracle 문서 BNF 대신 사용하기 때문에 이쪽도 함께 기억하면 자료 조사에 도움이 된다.

감상


불평을 할 때 응용 정보에 문제가 생기지만 사실 대학에서는 조금만 물어본 적이 있다.
프로그래밍 언어를 만들지 않기 때문에 w는 상관없고 적당히 즉석에서 공부하는데 자신의 업무와 관련된 곳(SQL 문서)에 나타날 줄은 몰랐기 때문에 완전히 잊어버렸다.
정보학과 학부가 아니라면 일단 몰라요.
경험 없이 시작한 사람이 이런 걸로 문서를 쓰는 걸 알면 나중에 도움이 될 거예요.

참고 자료


달인 프로그래머https://estore.ohmsha.co.jp/titles/978427421933P
달인 프로그래머(amazon)https://www.amazon.co.jp/dp/427421933X
Wikipedia https://ja.wikipedia.org/wiki/발크스 나우루 기법
BNF 사용 자료http://www.contrib.andrew.cmu.edu/%7Eshadow/sql/sql1992.txt
문법 표현식(영어)https://en.wikipedia.org/wiki/Syntax_diagram
문법 도식 사용 자료https://docs.oracle.com/cd/E16338_01/server.112/b56299/queries003.htm

좋은 웹페이지 즐겨찾기