[공학]프로그래밍 언어론 원유헌(저) 연습문제 3, 4 풀이
- 최초 등록일
- 2006.10.07
- 최종 저작일
- 2006.01
- 8페이지/
한컴오피스
- 가격 1,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
연습문제 3.4 단원 열심히 조사했습니다.
목차
■ [3.1] 다음과 같은 언어 설계 원칙을 잘 준수하고 있거나 위반하는 특징의 예를 실제 언어에서 찾아라.
■ [3.2] 직교성, 일반성, 획일성을 구분할 수 있는 예를 들어 보아라.
3.9 지금까지 수많은 언어가 설계, 구현되어 왔다. 이렇게 계속해서 새로운 프로그래밍 언어가 설계되고 구현되는 이유는 무엇인가?
3.10 Java 언어가 C 언어에서 개선될 때 추가되거나 삭제되어 어떤 설계 원칙을 만족시키며, 또는 어떤 설계 원칙을 위배하는지 논하라.
4.1 프로그래밍 언어가 갖는 예약어에 대하여 설명하고, 예약어를 사용함으로써 얻어지는 장단점을 설명하라.
4.2 언어의 복잡성을 측정하는 단위의 하나가 예약어 수이다. 다음 언어들의 예약어와 미리 정의된 식별자를 나열하고 그 의미를 기술하라
4.5 다음은 Ada 언어의 if 문장에 대한 EBNF이다.
4.7 BNF가 본문의 표4.4와 같이 주어졌을 때 다음 식에 대한 추상구문 트리와 파스트리를 그려라
4.10 프로그래밍 언어의 구현 기법에는 번역기법과 인터프리터 기법이 있다. 각 개념 및 장단점을 설명하고, 언어 구현방법에 의해 각 언어들을 분류하여 보아라.
본문내용
■ [3.1] 다음과 같은 언어 설계 원칙을 잘 준수하고 있거나 위반하는 특징의 예를 실제 언어에서 찾아라.
(1) 효율성(efficiency)
- Pascal의 경우 모든 변수들이 선언부에서 선언되어야만 하기 때문에 번역의 효율성을 제공한다.
(2) 표현력(expressiveness)
- Lisp과 Prolog는 쉽고 빠르게 프로그램을 작성할 수 있기 때문에 표현력이 좋다.
(3) 유지보수성(maintainability)
- C의 경우 판독성이 떨어지고 객체지향 개념을 제공하고 있지 않기 때문에 유지보수성이 떨어진다.
(4) 판독성(readability)
- C의 경우 프로그램 최초 작성자의 효율성만을 강조한 측면이 있기 때문에 판독성이 떨어진다(예: while(*s++==*t++);).
(5) 안전성(security)
- Lisp과 Prolog의 경우 복잡한 문제를 수행하는 프로그램을 수행하면 안정성을 위한 정적 형 검사와 변수 선언이 큰 복잡성을 야기한다.
(6) 간결성(simplicity)
- Pascal의 경우 꼭 필요한 구성자들만을 제공하면서 복잡한 계산식을 이해하기 쉽게 표현할 수 있도록 해주는 간결성을 지닌다.
(7) 작성력(writability)
- C의 경우 모든 원하는 표현을 작성할 수 있다는 장점을 지닌다.
(8) 신뢰성(reliability)
- 신뢰성은 프로그램 작성 및 유지보수, 디버깅의 효율성 정도를 가지고 판단할 수 있다. 이러한 측면에서 Java는 좋은 신뢰성을 제공한다.
■ [3.2] 직교성, 일반성, 획일성을 구분할 수 있는 예를 들어 보아라.
- ① 직교성: 언어의 구성자들이 각각의 의미를 가진 채 결합하는 성질
직교성의 예: 함수 반환 값 자료형
Pascal: 스칼라형, 포인터형만 허용
C: 배열형만 제외
Ada: 완벽한 직교성 제공(모든 자료형 허용)
참고 자료
프로그래밍 언어론 원유헌(저)