소개글
1. 폰노이만 병목이 왜 중요한지 장단점을 중심으로 논해 보시오.2. 대부분의 언어들이 모든 알고리즘을 표현하는 데 사용될 수 있는데도 불구하고,
우리가 주어진 하나의 프로그래밍 문제를 푸는 데 사용하는 언어가 어느 것이냐
하는 점이 왜 중요한가?
3. C언어의 switch 문에 대해서 EBNF와 구문 그래프를 작성해 보시오.
4. BNF가 교안의 표2가 주어졌을 때 다음 식에 대한 추상 구문 트리와 파스 트리를
그려 보시오.
5. 프로그래밍 언어의 구현 기법에는 번역 기법과 인터프리터 기법이 있습니다. 각 개념
및 장·단점을 설명하고, 언어 구현 방법에 의해 각 언어들을 분류하여 보시오.
6. 몇몇의 프로그래밍 언어에서는 특별한 언급이 없는 한 식별자의 길이를 제한하고
있습니다. 그 이유가 무엇인지 알아보시오. 또한, 식별자의 첫 번째 문자를 영문자로 시작하도록 제한하고 있는 이유도 밝혀보시오.
7. 선언문을 사용할 때의 장점과 단점을 설명하고, 각 프로그래밍 언어에서 정의하고 있는 선언문의 형식을 조사해 보시오.
8. 피연산자 평가 순서와 함수적 부작용이 어떻게 서로 간에 영향을 미치는가 생각해
보시오.
9. 배열에서 다음사항들을 요약하시오.
10. 포인터형의 설계 고려 사항은 무엇이고 포인터에 대한 두 가지 공통된 문제는
무엇일까요?
11. 정적 영역과 동적영역을 갖는 프로그램에서 비지역 변수에 대한 참조가 어떻게
연결되는 지 구별하라.
12. Algol 형태의 골격 프로그램 구조에서 각 단위 프로그래므이 참조 환경을 나열하여라. 단, 각 변수 이름마다 어느 단위 프로그램에서 선언된 변수인지를 명확히 하라.
13. 다음 pascal 골격 프로그램을 가지고 다음 물음에 답하라.
목차
1. 폰노이만 병목이 왜 중요한지 장단점을 중심으로 논해 보시오.2. 대부분의 언어들이 모든 알고리즘을 표현하는 데 사용될 수 있는데도 불구하고, 우리가 주어진 하나의 프로그래밍 문제를 푸는 데 사용하는 언어가 어느 것이냐 하는 점이 왜 중요한가?
3. C언어의 switch 문에 대해서 EBNF와 구문 그래프를 작성해 보시오.
4. BNF가 교안의 표2가 주어졌을 때 다음 식에 대한 추상 구문 트리와 파스 트리를 그려 보시오.
5. 프로그래밍 언어의 구현 기법에는 번역 기법과 인터프리터 기법이 있습니다. 각 개념및 장·단점을 설명하고, 언어 구현 방법에 의해 각 언어들을 분류하여 보시오.
6. 몇몇의 프로그래밍 언어에서는 특별한 언급이 없는 한 식별자의 길이를 제한하고 있습니다. 그 이유가 무엇인지 알아보시오. 또한, 식별자의 첫 번째 문자를 영문자로 시작하도록 제한하고 있는 이유도 밝혀보시오.
7. 선언문을 사용할 때의 장점과 단점을 설명하고, 각 프로그래밍 언어에서 정의하고 있는 언문의 형식을 조사해 보시오.
8. 피연산자 평가 순서와 함수적 부작용이 어떻게 서로 간에 영향을 미치는가 생각해 보시오.
9. 배열에서 다음사항들을 요약하시오.
10. 포인터형의 설계 고려 사항은 무엇이고 포인터에 대한 두 가지 공통된 문제는 무엇일까요?
11. 정적 영역과 동적영역을 갖는 프로그램에서 비지역 변수에 대한 참조가 어떻게 연결되는 지 구별하라.
12. Algol 형태의 골격 프로그램 구조에서 각 단위 프로그래므이 참조 환경을 나열하여라. 단, 각 변수 이름마다 어느 단위 프로그램에서 선언된 변수인지를 명확히 하라.
13. 다음 pascal 골격 프로그램을 가지고 다음 물음에 답하라.
본문내용
1. 폰노이만 병목이 왜 중요한지 장단점을 중심으로 논해 보시오.=> 폰노이만 구조란 데이터 메모리와 프로그램 메모리가 구분되어있지 않고 하나의 버스를 가지고 있는 구조로 프로그램과 데이터는 하드디스크와 같이 접속이 느린 매체에 저장하고 접속이 빠른 휘발성 저장 매체인 램에서 프로그램과 데이터를 실행시킨다는 것이다.
램으로부터 읽어 낸 정보가 명령이면 제어 장치로, 데이터이면 연산 장치로 보내 컴퓨터 내부에서 빠르게 계산을 실행하는 것이다. 이 방식은 오늘날 컴퓨터의 기본 원리가 되었다.
하지만 하바드 구조가 두 개의 버스가 독립되어 있어서 한 인스트럭션을 실행하는 동안 다음 인스트럭션을 읽어와 준비 할 수 있는 반면에(버스의 점유 문제로 인한 병목 현상도 적음) 폰노이만 구조는 하나의 버스를 가지고 사용하기 때문에 한 인스트럭션이 종료된 다음에 다음 인스트럭션을 실행할수 있으며 프로그램 메모리와 데이터 메모리가 같은 곳에 존재하므로 메모리 alignment 도 수행하여야 한다. 또한 프로그램과 데이터가 저장된 접속이 느린 매체와의 병목현상이 발생한다.
2. 대부분의 언어들이 모든 알고리즘을 표현하는 데 사용될 수 있는데도 불구하고, 우리가 주어진 하나의 프로그래밍 문제를 푸는 데 사용하는 언어가 어느 것이냐 하는 점이 왜 중요한가?
=> 효율적인 문제 해결을 위해서 중요하다고 생각합니다.
문제의 특성에 따라 언어를 구분하여 사용한다면 언어의 특성을 이용하여 좀 더 효과적인 알고리즘 작성을 할 수 있습니다. 예를 들어 A라는 문제를 해결하는데 C언어를 이용하면 알고리즘이 복잡해지고 내용도 방대해지는 반면 Ada로는 알고리즘이 간결해지고 단순화 될 때 Ada로 프로그래밍을 하는것이 더 효율적이고 추후 관리목적면을 고려해서도 훨씬 효율적인 문제해결방안이 될 것입니다.
※ 특성별 사용 예
문자처리에 유용한 Snobol4, 상업용 Cobol, 시스템 내장 프로그램 Ada, Modula-2, 과학 및 수학 FORTRAN, C,