Ebnf

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
>

상세정보

소개글

"Ebnf"에 대한 내용입니다.

목차

1. 프로그래밍 언어의 개요
1.1. 프로그래밍 패러다임과 프로그래밍 언어 패러다임
1.2. 프로그래밍 패러다임의 실례

2. 프로그래밍 언어의 문법 표현
2.1. BNF(Backus-Naur Form)
2.2. EBNF(Extended Backus-Naur Form)
2.3. 구문 도표

3. 1950년대 프로그래밍 언어: FORTRAN

4. 1970년대 프로그래밍 언어: C

5. 1990년대 이후 프로그래밍 언어: Java, Python

6. 프로그래밍 언어의 기능과 평가 기준
6.1. 프로그래밍 언어의 기본 기능
6.2. 프로그래밍 언어의 부가 기능
6.3. 프로그래밍 언어의 평가 기준

7. BNF와 EBNF 간 변환
7.1. BNF로 표현된 구문의 EBNF 표현
7.2. EBNF로 표현된 구문의 BNF 표현
7.3. 구문 도표에 의한 표현

8. 참고 문헌

본문내용

1. 프로그래밍 언어의 개요
1.1. 프로그래밍 패러다임과 프로그래밍 언어 패러다임

프로그래밍 패러다임과 프로그래밍 언어 패러다임은 밀접한 관계를 가지고 있다. 프로그래밍 패러다임이 프로그램을 작성하는 방식이나 스타일을 의미한다면, 프로그래밍 언어 패러다임은 해당 언어가 지원하는 프로그래밍 패러다임을 의미한다.

프로그래밍 언어는 대체로 특정한 프로그래밍 패러다임에 특화되는 경향이 있지만, 하나의 언어가 반드시 한 가지 프로그래밍 패러다임만을 지원하는 것은 아니다. 예를 들어 C++, Java, Python 등 많이 사용되는 언어들은 명령형, 함수형, 객체지향 등 여러 가지 프로그래밍 패러다임을 지원한다.

반대로 하나의 프로그래밍 패러다임을 지원하는 언어들도 있는데, Prolog와 같이 순수한 논리 프로그래밍 언어가 대표적이다.

프로그래밍 언어의 패러다임은 개발 과정에서의 생산성, 프로그램의 가독성, 유지 보수성 등에 큰 영향을 미친다. 따라서 프로그래밍 언어를 선택할 때는 개발 목적과 특성에 맞는 프로그래밍 패러다임을 지원하는지 고려해야 한다.

요약하자면, 프로그래밍 패러다임은 프로그램을 작성하는 방식이나 스타일을 의미하고, 프로그래밍 언어 패러다임은 언어가 지원하는 프로그래밍 패러다임을 의미한다. 이 두 가지는 밀접한 관계를 가지고 있으며, 개발 목적과 특성에 맞는 프로그래밍 언어 패러다임을 선택하는 것이 중요하다.


1.2. 프로그래밍 패러다임의 실례

프로그래밍 패러다임의 실례는 다음과 같다.

명령형(Imperative) 프로그래밍 패러다임의 예로는 BASIC과 C 언어를 들 수 있다. 이들 언어에서는 데이터를 처리하기 위한 명령어의 순서를 효율적으로 작성하는 것이 중요하다. 변수와 할당문 등을 사용하여 메모리 장소의 내용을 조작하는 방식으로 계산 과정을 수행한다.

절차형(Procedural) 프로그래밍 패러다임의 예로는 FORTRAN과 Pascal을 들 수 있다. 이들 언어에서는 문제 해결에 필요한 연산을 정리하고 이를 모듈화하여 관리하는 데 초점을 맞춘다. 명령형 프로그래밍 패러다임에 비해 절차의 추상화 수준이 높다고 볼 수 있다.

함수형(Functional) 프로그래밍 패러다임의 예로는 Lisp과 Haskell을 들 수 있다. 이들 언어에서는 데이터를 값으로 간주하고 새로운 값을 생성하는 함수에 초점을 맞추어 메모리 관리의 부담을 덜어준다. 기억 장소의 상태 변화 개념이 존재하지 않으며, 프로그램은 입력과 출력의 함수 관계만을 기술한다.

논리(Logic) 프로그래밍 패러다임의 예로는 Prolog를 들 수 있다. 이 언어에서는 문제의 요구사항을 논리식으로 표현하고, 논리식의 무결성을 갖추면 컴퓨터가 알아서 원하는 답을 찾아낸다. 데이터 처리 과정보다는 문제의 요구사항을 선언적으로 명시하는 데 초점을 맞춘다.

객체지향(Object-Oriented) 프로그래밍 패러다임의 예로는 C++, Java, Python 등을 들 수 있다. 이들 언어에서는 데이터와 그 데이터를 처리하는 연산을 하나의 객체에 묶어 관리함으로써, 데이터와 연산 절차를 통합적으로 다룰 수 있다. 객체 간 메시지 교환을 통해 계산을 진행한다.

이처럼 각 프로그래밍 패러다임은 문제 해결 방식과 스타일에 차이가 있으며, 언어 설계 철학과 핵심 기능에서도 다양한 특성을 보인다."


2. 프로그래밍 언어의 문법 표현
2.1. BNF(Backus-Naur Form)

BNF(Backus-Naur Form)는 프로그래밍 언어의 구문 표현을 위한, 최초의 메타 언어로 ALGOL 60을 정의하는 데 사용되었다. BNF 표기에 사용된 메타기호에는 ::=, |, 가 있다. ::=는 좌변(비단말 기호)이 우변에 의해 정의됨을 의미하고, < >는 BNF 구문 요소를 나타내며, |는 둘 중 하나를 선택하라는 의미의 메타기호이다.

비단말 기호(nonterminal)는 다시 정의될 수 있지만, 단말기호는(terminal) 더 이상 정의가 불필요한 기호를 의미한다. 예를 들면 식별자를 의미하는 는 각괄호 묶여 메타기호 ::=에 의해 우측에서 정의될 수 있으므로 비단말기호이다. 반면, A, B, a, b, 0, 1 등은 문자 그 자체를 의미하는 것으로 각괄호로 묶이지 않고 더 이상 정의가 불필요한 단말기호가 된다.

BNF는 프로그래밍 언어 구문을 정의하는데 있어, 단순하면서도 체계적인 표현 방식을 제공...


참고 자료

우균, 김진욱(2019), 프로그래밍언어론, 한국방송통신대학교출판문화원.
Robert W. Sebesta 외(2012). 프로그래밍 언어론 [10판]. PEARSON.
Robert W. Sebesta 외(2012). 프로그래밍 언어론 [10판]. PEARSON.
마스이 토시카츠(2018). 프로그래밍 언어도감. 영진닷컴.
https://atoz-develop.tistory.com/entry/%EA%B5%AC%EB%AC%B8%EB%A1%A0-BNF-EBNF-%EA%B5%AC%EB%AC%B8%EB%8F%84%ED%91%9C-%ED%91%9C%ED%98%84%EB%B2%95
http://ehpub.co.kr/tag/bnf-%ED%91%9C%EA%B8%B0%EB%B2%95/
http://elearning.kocw.net/KOCW/document/2014/deagucatholic/kimhangkon/3.pdf
https://booolean.tistory.com/295
우균·김진욱(2019), 프로그래밍언어론, 출판문화원.

주의사항

저작권 EasyAI로 생성된 자료입니다.
EasyAI 자료는 참고 자료로 활용하시고, 추가 검증을 권장 드립니다. 결과물 사용에 대한 책임은 사용자에게 있습니다.
AI자료의 경우 별도의 저작권이 없으므로 구매하신 회원님에게도 저작권이 없습니다.
다른 해피캠퍼스 판매 자료와 마찬가지로 개인적 용도로만 이용해 주셔야 하며, 수정 후 재판매 하시는 등의 상업적인 용도로는 활용 불가합니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우