목차
(1) 교재와 강의에서 다룬 기능과 기준에 근거하여 다음에 대해 답하시오. (15점)
① 프로그래밍 언어의 세 가지 기본 기능 중 한 가지를 선택하여 자세히 설명하시오.
② 프로그래밍 언어의 두 가지 부가 기능 중 한 가지를 선택하여 자세히 설명하시오.
③ 프로그래밍 언어의 아홉 가지 평가 기준 중 한 가지를 선택하여 자세히 설명하시오.
(2) 다음에 대해 답하시오. (15점)
① BNF로 표현된 다음 세 개의 구문을 하나의 EBNF로 합쳐 표현하고 그렇게 표현한 이유를 설명하시오.
<배열 선언> ::= <타입> <identifier> <배열 차원> ;
<타입> ::= char | int | double
<배열 차원> ::= [ <digit> ] <배열 차원> | [ <digit> ]
② ①에서 답한 EBNF 표현을 구문 도표로 표현하고 그렇게 표현한 이유를 설명하시오.
(3) 참고문헌
① 프로그래밍 언어의 세 가지 기본 기능 중 한 가지를 선택하여 자세히 설명하시오.
② 프로그래밍 언어의 두 가지 부가 기능 중 한 가지를 선택하여 자세히 설명하시오.
③ 프로그래밍 언어의 아홉 가지 평가 기준 중 한 가지를 선택하여 자세히 설명하시오.
(2) 다음에 대해 답하시오. (15점)
① BNF로 표현된 다음 세 개의 구문을 하나의 EBNF로 합쳐 표현하고 그렇게 표현한 이유를 설명하시오.
<배열 선언> ::= <타입> <identifier> <배열 차원> ;
<타입> ::= char | int | double
<배열 차원> ::= [ <digit> ] <배열 차원> | [ <digit> ]
② ①에서 답한 EBNF 표현을 구문 도표로 표현하고 그렇게 표현한 이유를 설명하시오.
(3) 참고문헌
본문내용
가 아닌 그 자체의 의미 즉, 단말기호로 사용할 경우에는 \'|\', \'::=\'처럼 인용부호로 묶어 표현한다.
구문 도표(syntax diagram)는 구문을 도식적으로 기술하는 방법으로 BNF와 EBNF을 표현할 수 있다. 형태는 순서도와 유사하다. 비단말 기호는 사각형으로, 단말기호는 원이나 타원으로, 화살표를 이용해 순서를 표현한다. 구문 도표에서 화살표는 나누어지거나 합쳐지기도 하고 반대 방향을 되돌아갈 수 있게 함으로써 택일이나 반복 등을 표현하게 된다.
EBNF 표현과 BNF 표현은 상호 변환이 가능하다. 메타 기호 []는 메타 기호 |을 이용하여 []로 묶인 부분이 있는 것과 없는 것으로 나누어 BNF 표현이 가능하다. 또한 메타 기호()는 ()의 바깥 부분을 반복하여 표현해 BNF로의 전환이 가능하다. 메타 기호 {}는 {}로 묶인 부분이 0번 이상 사용되는 경우와 한 번 이상 반복되는 경우로 나누어 BNF로 표현한다. 반복하는 방법은 메타 기호 ::=의 왼쪽 부분에 나오는 비단말 기호를 오른쪽 부분에도 사용하는 것이다.
한 BNF 표현을 다양한 EBNF로 표현할 수 있는 것처럼 같은 문법을 여러 형태의 구문 도표로 표현할 수 있다. 또한 비단말을 표시하고 있는 사각형을 참조하지 않도록 하기 위해 직접 그 내용을 구문 도표에 대입할 수도 있다.
① BNF로 표현된 다음 세 개의 구문을 하나의 EBNF로 합쳐 표현하고 그렇게 표현한 이유를 설명하시오.
<배열 선언> ::= <타입> <배열 차원> ;
<타입> ::= char | int | double
<배열 차원> ::= [ ] <배열 차원> | [ ]
위 내용을 참고하여 <배열 선언>의 BNF 3개를 다음처럼 하나의 EBNF로 표현할 수 있다.
<배열 선언> ::= (char | int | double) \'[\'\']\' {\'[\'\']\'}
‘타입’ 비단말 기호를 표현하기 위해 한정된 범위의 택일을 표현하는 메타기호 ()와 |를 사용했다. 또한 ‘배열 차원’ 비단말 기호는 0회 이상의 반복을 표현하는 메타기호 {}로 표현하면 된다. 이때 [ 와 ]는 메타기호가 아니라 단말기호로 사용되므로, 메타기호 \'\'를 사용하여 메타기호가 아님을 표현한다.
② ①에서 답한 EBNF 표현을 구문 도표로 표현하고 그렇게 표현한 이유를 설명하시오.
EBNF 표현에서 (char | int | double)는 구문도표에서는 화살표로 표현가능하다. 즉, 화살표를 세 방향으로 나누어 char, int, double의 선택을 가능하게 한 후 다시 한 곳에서 만나게 한다. 비단말기호 identifier와 digit는 사각형으로 표현하고, 메타기호가 아닌 [ 와 ]는 문자 그 자체로써 인용부호(\'\')로 표현한다. 0번 이상의 반복을 의미하는 {\'[\'\']\'}는 화살표를 반대 방향으로 되돌림으로써 필요한 만큼 반복이 가능해진다.
(3) 참고문헌
우균·김진욱(2019), 프로그래밍언어론, 출판문화원.
구문 도표(syntax diagram)는 구문을 도식적으로 기술하는 방법으로 BNF와 EBNF을 표현할 수 있다. 형태는 순서도와 유사하다. 비단말 기호는 사각형으로, 단말기호는 원이나 타원으로, 화살표를 이용해 순서를 표현한다. 구문 도표에서 화살표는 나누어지거나 합쳐지기도 하고 반대 방향을 되돌아갈 수 있게 함으로써 택일이나 반복 등을 표현하게 된다.
EBNF 표현과 BNF 표현은 상호 변환이 가능하다. 메타 기호 []는 메타 기호 |을 이용하여 []로 묶인 부분이 있는 것과 없는 것으로 나누어 BNF 표현이 가능하다. 또한 메타 기호()는 ()의 바깥 부분을 반복하여 표현해 BNF로의 전환이 가능하다. 메타 기호 {}는 {}로 묶인 부분이 0번 이상 사용되는 경우와 한 번 이상 반복되는 경우로 나누어 BNF로 표현한다. 반복하는 방법은 메타 기호 ::=의 왼쪽 부분에 나오는 비단말 기호를 오른쪽 부분에도 사용하는 것이다.
한 BNF 표현을 다양한 EBNF로 표현할 수 있는 것처럼 같은 문법을 여러 형태의 구문 도표로 표현할 수 있다. 또한 비단말을 표시하고 있는 사각형을 참조하지 않도록 하기 위해 직접 그 내용을 구문 도표에 대입할 수도 있다.
① BNF로 표현된 다음 세 개의 구문을 하나의 EBNF로 합쳐 표현하고 그렇게 표현한 이유를 설명하시오.
<배열 선언> ::= <타입>
<타입> ::= char | int | double
<배열 차원> ::= [
위 내용을 참고하여 <배열 선언>의 BNF 3개를 다음처럼 하나의 EBNF로 표현할 수 있다.
<배열 선언> ::= (char | int | double)
‘타입’ 비단말 기호를 표현하기 위해 한정된 범위의 택일을 표현하는 메타기호 ()와 |를 사용했다. 또한 ‘배열 차원’ 비단말 기호는 0회 이상의 반복을 표현하는 메타기호 {}로 표현하면 된다. 이때 [ 와 ]는 메타기호가 아니라 단말기호로 사용되므로, 메타기호 \'\'를 사용하여 메타기호가 아님을 표현한다.
② ①에서 답한 EBNF 표현을 구문 도표로 표현하고 그렇게 표현한 이유를 설명하시오.
EBNF 표현에서 (char | int | double)는 구문도표에서는 화살표로 표현가능하다. 즉, 화살표를 세 방향으로 나누어 char, int, double의 선택을 가능하게 한 후 다시 한 곳에서 만나게 한다. 비단말기호 identifier와 digit는 사각형으로 표현하고, 메타기호가 아닌 [ 와 ]는 문자 그 자체로써 인용부호(\'\')로 표현한다. 0번 이상의 반복을 의미하는 {\'[\'
(3) 참고문헌
우균·김진욱(2019), 프로그래밍언어론, 출판문화원.
키워드
추천자료
2009년 2학기 프로그래밍언어론 기말시험 핵심체크
2015년 2학기 프로그래밍언어론 교재 전 범위 핵심요약노트
2015년 2학기 프로그래밍언어론 기말시험 핵심체크
2016년 하계계절시험 프로그래밍언어론 시험범위 핵심체크
2016년 2학기 프로그래밍언어론 기말시험 핵심체크
2019년 2학기 프로그래밍언어론 중간시험과제물 공통(프로그래밍 언어의 평가 기준)
2019년 2학기 프로그래밍언어론 기말시험 핵심체크
2020년 2학기 프로그래밍언어론 중간시험과제물 공통(프로그래밍 언어 기준 등)
(방송통신대 프로그래밍언어론)교재와 강의에서 언급된 프로그래밍 언어 기준으로 다음에 대...
(방송통신대 프로그래밍언어론 중간과제물)프로그래밍 패러다임과 프로그래밍 언어 패러다임 ...
소개글