프로그래밍 언어 개념(원유헌, 정익사) - 4장,6장,7장 연습문제 일부
Dev
다운로드
장바구니
소개글
프로그래밍 언어 개념(원유헌, 정익사) 4장, 6장, 7장 연습 문제 일부 답안입니다.목차에 있는 문제 목록들을 반드시 확인해주세요.
목차
[4장] 프로그래밍 언어의 구문과 기법1. 프로그래밍 언어가 갖는 예약어에 대하여 설명하고, 예약어를 사용함으로써 얻어지는 장단점을 설명하라
2. 언어의 복잡성을 측정하는 단위의 하나가 예약어의 수이다. 다음 언어들의 예약어와 미리 정의된 식별자를 나열하고 그 의미를 기술하라.
3. 다음은 Algol 60에 정의된 for 문장에 관한 BNF이다.
4. 다음 구문 도표를 보고 물음에 답하라.
5. 다음은 Ada 언어의 if 문장에 관한 EBNF이다.
6. 다음 각각에 대해서 EBNF를 작성하시오.
7. BNF가 본문의 [표 4.4]와 같이 주어졌을 때 다음 식에 대한 추상 구문 트리와 파스트리를 그려라.
10. 프로그래밍 언어의 구현 기법에는 번역 기법과 인터프리터 기법이 있다. 각 개념 및 장단점을 설명하고, 언어 구현 방법에 의해 각 언어들을 분류하여 보아라.
11. 하이브리드 구현 기법의 장단점을 논하시오.
[6장] 변수, 바인딩, 식 및 제어문
1. 몇몇의 프로그래밍 언어에서는 특별한 언급이 없는 한 식별자의 길이를 제한하고 있다. 그 이유가 무엇인지를 알아보아라. 또한, 식별자의 첫 번재 문자를 영문자로 시작하도록 제한하고 있는 이유도 밝혀라.
2.Pascal, C, Java에서 다음과 같이 속성들의 정확한 바인딩 시간을 조사하고, 그 이유를 논하라.
4. 동적 자료형 바인딩의 장단점은 무엇인가?
5. 프로그래밍 언어를 구현하는 데 있어서 주요 속성들에 대한 바인딩 시간이 달라짐에 따라 언어가 가질 수 있는 장단점을 비교 설명하라.
6. 선언문의 사용할 때의 장점과 단점을 설명하고, 각 프로그램 언어에서 정의하고 있는 선언문의 형식을 조사하라.
7. 묵시적 선언의 장단점은 무엇인가?
8. 프로그래밍 언어별로 사용하고 있는 배정 연산문을 나열하고, 그 배정문에서 허용되는 형변환 연산을 설명하라.
10. C의 단일 피연산자 배정 형태(예를 들면, ++count)가 다른 언어에서 제공되어야 하는가? 그 이유를 제시하시오.
11. 다음 C 프로그램을 생각해보자.
13. l-value와 r-value의 의미를 설명하라.
14. 복합 배정 연산자의 목적은 무엇인가?
16. 상수명 사용의 장점은 무엇인가?
20. 단락회로 평가란 무엇인가?
27. 반복문의 구조와 반복문을 벗어나는 방법을 조사하고 여러분이 가장 좋다고 생각하는 방법과 이유를 논하라.
30. 다음과 같은 두 프로그램이 있을 때, 이 두 프로그램은 동일한가, 또 S는 어떠한 순서로 실행되는가?
[7장] 자료형
3. 열거 자료형을 사용할 경우의 장점을 말하라.
8. n차원 배열 자료형에서 원소의 위치를 계산하는 방법을 저장 방식에 따라 수식으로 표현해 보아라.(n차원이나 3차원)
11. 포인터형의 설계 고려 사항은 무엇이고 포인터에 대한 두 가지 공통된 문제는 무엇인가?
12. C++의 참조형은 무엇이고 일반적인 용도는 무엇이며, 참조형 변수가 포인터 형식 매개변수보다 더 나은 이유는 무엇인가?
17. Pascal 구문으로 된 자료형과 변수 선언이 다음과 같이 주어졌다.
20.‘/’가 정수 혹은 실수 나눗셈을 뜻하고 정수와 실수간의 묵시적 변환을 허용하는 언어에서는, 식 I+J/K가 상이한 결과를 낼 수도 있다. 어떻게 그런 일이 일어날 수 있는지 묘사하라. FORTRAN은 어느 해석을 사용하는가? C는 어느 것을 사용하는가? 어느 해석이 보다 나은가?
본문내용
4. 프로그래밍 언어의 구문과 기법1. 프로그래밍 언어가 갖는 예약어에 대하여 설명하고, 예약어를 사용함으로써 얻어지는 장단점을 설명하라
ㆍ예약어(reserved word) : 미리 정의된 식별자 중 일부를 재정의 할 수 없도록 정의한 것. 최근 언어일수록 많음. (ex. if, while, int 등)
- 장점 : 가독성↑, 탐색 속도↑, 오류 회복
- 단점 : 늘어날수록 기억하기 어려움, 이전 프로그램의 식별자와 중복 시 프로그램 의미 왜곡
2. 언어의 복잡성을 측정하는 단위의 하나가 예약어의 수이다. 다음 언어들의 예약어와 미리 정의된 식별자를 나열하고 그 의미를 기술하라.
ㆍ미리 정의된 식별자(predefined identifier) : 번역 속도↑, 프로그램 신뢰성↑을 목적으로 미리 정의해서 사용 (ex. scanf, printf, strcnp, #define 등)
ㆍ예약어(reserved word) : 미리 정의된 식별자 중 일부를 재정의 할 수 없도록 정의한 것. 최근 언어일수록 많음. (ex. if, while, int 등)
- 장점 : 가독성↑, 탐색 속도↑, 오류 회복
- 단점 : 늘어날수록 기억하기 어려움, 이전 프로그램의 식별자와 중복 시 프로그램 의미 왜곡
(a) C
char : 문자 자료형(1바이트)
int : 정수 자료형(보통 4바이트)
short : 정수 자료형(2바이트)
long : 정수 자료형(4바이트)
unsigned : 부호없는
float : 실수
double : 배정소 실수
extern : (설명하기 곤란함)
static : 함수 내부와 함수 외부에서 2가지 의미를 가지는 키워드
if : 조건문
continue : 분기문에서 루프를 계속 돔
case : switch-case 문
else : 조건문
default : switch-case문에서 어떤 조건에도 속하지 않을때...
goto : 분기
for : 루프
break : 루프를 빠져나감
do : do-while 문
return : 리턴